def setup(self, **kwargs):
        """setup ASA context for an edge tenant pair. """
        params = kwargs.get('params')
        LOG.info("asa_setup: tenant %(tenant)s %(in_vlan)d %(out_vlan)d"
                 " %(in_ip)s %(in_mask)s %(out_ip)s %(out_mask)s",
                 {'tenant': params.get('tenant_name'),
                  'in_vlan': params.get('in_vlan'),
                  'out_vlan': params.get('out_vlan'),
                  'in_ip': params.get('in_ip'),
                  'in_mask': params.get('in_mask'),
                  'out_ip': params.get('out_ip'),
                  'out_mask': params.get('out_mask')})
        inside_vlan = str(params.get('in_vlan'))
        outside_vlan = str(params.get('out_vlan'))
        context = params.get('tenant_name')
        cmds = ["conf t", "changeto system"]
        inside_int = params.get('intf_in') + '.' + inside_vlan
        cmds.append("int " + inside_int)
        cmds.append("vlan " + inside_vlan)
        outside_int = params.get('intf_out') + '.' + outside_vlan
        cmds.append("int " + outside_int)
        cmds.append("vlan " + outside_vlan)
        cmds.append("context " + context)
        cmds.append("allocate-interface " + inside_int)
        cmds.append("allocate-interface " + outside_int)
        cmds.append("config-url disk0:/" + context + ".cfg")
        cmds.append("write memory")
        cmds.append("changeto context " + context)
        cmds.append("int " + inside_int)
        cmds.append("nameif Inside")
        cmds.append("security-level 100")
        cmds.append(
            "ip address " + params.get('in_ip') + " " + params.get('in_mask'))
        cmds.append("int " + outside_int)
        cmds.append("nameif Outside")
        cmds.append("security-level 0")
        cmds.append("ip address " + params.get('out_ip') + " " +
                    params.get('out_mask'))

        cmds.append("router ospf 1")
        cmds.append("network " + params.get('in_ip') + " " +
                    params.get('in_mask') + " area 0")
        cmds.append("network " + params.get('out_ip') + " " +
                    params.get('out_mask') + " area 0")
        cmds.append("area 0")
        cmds.append("route Outside 0.0.0.0 0.0.0.0 " + params.get('out_gw') +
                    " 1")
        cmds.append("route Outside 0.0.0.0 0.0.0.0 " +
                    params.get('out_sec_gw') + " 1")
        cmds.append("end")
        cmds.append("write memory")

        if context not in self.tenant_rule:
            self.tenant_rule[context] = dict()
            self.tenant_rule[context]['rule_lst'] = []

        data = {"commands": cmds}
        return self.rest_send_cli(data)