leaf1_id = hyp_utils.get_hyp_leaf_name(leaf1_hypervisor_name,
                                           leaf1_vpc_name, leaf1_name)
    l1_hypervisor_arg = " hypervisor=" + leaf1_hypervisor_name

    leaf2_name = connection_data["leaf2_name"]
    leaf2_hypervisor_name = connection_data["leaf2_hypervisor_name"]
    leaf2_id = hyp_utils.get_hyp_leaf_name(leaf2_hypervisor_name,
                                           leaf2_vpc_name, leaf2_name)
    l2_hypervisor_arg = " hypervisor=" + leaf2_hypervisor_name

    #connect leaf1 to leaf2 vxlan remote
    try:
        #c1_ve_h_l2t2
        vxlan_tunnel_name_arg = " vxlan_tunnel_name=vxlantun26"

        loopback_net = raas_utils.get_new_veth_subnet('loopbacks').split('/')
        grep_lo_net = ".".join(loopback_net[0].split('.')[0:-1])

        leaf1_lo_ip = raas_utils.get_ns_ip(leaf1_hypervisor_name, leaf1_id,
                                           grep_lo_net)

        leaf2_lo_ip = raas_utils.get_ns_ip(leaf2_hypervisor_name, leaf2_id,
                                           grep_lo_net)

        try:
            # Configure VXLAN on Leaf 1 Transit
            leaf1_id_arg = " l_name=" + leaf1_id
            l_local_ip_arg = " l_ip=" + leaf1_lo_ip
            l_remote_ip_arg = " remote_l_ip=" + leaf2_lo_ip
            br_name_arg = " l_br_name=" + leaf1_id + "_br"
示例#2
0
    
    
    spine_name = leaf_data["spine_name"]
    if not raas_utils.client_exists_spine(vpc_name,spine_name):
      print(spine_name+ " spine does not exist")
      exit(1)
    spine_id=hyp_utils.get_hyp_spine_name(hypervisor,vpc_name,spine_name)

    transit_name = leaf_data["l1_transit_name"]
    if not raas_utils.client_exists_l1_transit(transit_name):
      print(transit_name+" transit does not exist")
      exit(1)
    transit_id=hyp_utils.get_hyp_l1_transit_name(hypervisor,transit_name)

    try:
      network=raas_utils.get_new_veth_subnet('spine_l1t')
      subnet = network.split('/')
      
      b_ip = "b_ip="+str(ipaddress.ip_address(subnet[0])+1) + '/' + subnet[1]
      dhcp_range = "dhcp_range="+str(ipaddress.ip_address(subnet[0])+2)+','+ \
                        str(ipaddress.ip_address(subnet[0])+6)
      
      net_name=" s_t_net"+vpc_id + "_net_" + spine_id.split('_')[2]+"_" + transit_id.split('_')[1]
      net_arg=" t_s_net=" +net_name 
      br_arg=" s_t_br=" + vpc_id + "_br_" + spine_id.split('_')[2]+"_" + transit_id.split('_')[1]
      veth_1=" ve_l_s=" + vpc_id + "_ve_" + spine_id.split('_')[2]+"_" + transit_id.split('_')[1]
      veth_2=" ve_s_l=" + vpc_id + "_ve_" + transit_id.split('_')[1]+"_" + spine_id.split('_')[2]
      upper_vm_arg=" t_name="+transit_id
      lower_vm_arg=" s_name="+spine_id
      
      extra_vars = constants.ansible_become_pass + net_arg + br_arg + veth_1 + veth_2 + upper_vm_arg + lower_vm_arg + subnet_ip_arg + subnet_range_arg + " " + hypervisor_arg
示例#3
0
    l1_transit_name = connection_data["l1_transit_name"]
    l1_transit_hypervisor_name = connection_data["l1_transit_hypervisor_name"]
    l1_transit_id = hyp_utils.get_hyp_l1_transit_name(l1_transit_hypervisor_name,l1_transit_name)

    l2_transit_name = connection_data["l2_transit_name"]
    l2_transit_hypervisor_name = connection_data["l2_transit_hypervisor_name"]
    l2_transit_id = hyp_utils.get_hyp_l2_transit_name(l2_transit_hypervisor_name,l2_transit_name)

    if (l1_transit_hypervisor_name == l2_transit_hypervisor_name):
        #connect l1 transit to l2 transit local
        try:
            hypervisor_arg = "hypervisor="+l1_transit_hypervisor_name
            hypervisors_data = hyp_utils.get_hypervisors_data()
            hypervisor_ip = hyp_utils.get_hyp_ip(l1_transit_hypervisor_name)

            network=raas_utils.get_new_veth_subnet('l1t_l2t')
            subnet = network.split('/')

            l1t_ip = str(ipaddress.ip_address(subnet[0])+1) + '/' + subnet[1]
            l2t_ip = str(ipaddress.ip_address(subnet[0])+2) + '/' + subnet[1]
            l1t_ip_arg = " ns1_ip=" + l1t_ip
            l2t_ip_arg = " ns2_ip=" + l2t_ip 

            veth_1=" ve_ns1_ns2=c" + cid + "ve" + l1_transit_id.split('_')[1] + l2_transit_id.split('_')[1]
            veth_2=" ve_ns2_ns1=c" + cid + "ve" + l2_transit_id.split('_')[1] + l1_transit_id.split('_')[1]
            l2_transit_id_arg=" ns2="+l2_transit_id
            l1_transit_id_arg=" ns1="+l1_transit_id

            extra_vars = constants.ansible_become_pass + l1t_ip_arg + l2t_ip_arg + \
                        veth_1 + veth_2 + l1_transit_id_arg + l2_transit_id_arg + " " + hypervisor_arg
            raas_utils.run_playbook("ansible-playbook logic/misc/connect_ns_ns.yml -i logic/inventory/hosts.yml -v --extra-vars '"+extra_vars+"'")    
示例#4
0
            hyp_utils.write_l1_transit_id(l1id+1, hypervisor)
            hyp_utils.hyp_add_l1_transit(hypervisor, l1_transit_name, l1_transit_name_ansible)
            raas_utils.client_add_l1_transit(hypervisor, l1_transit_name, l1_transit_capacity, str(self_as))

        except Exception as e:
            raas_utils.log_service("create l1_transit failed deleting transit"+ str(e))
            raas_utils.log_client("create l1_transit failed....aborting")
            raas_utils.run_playbook("ansible-playbook logic/misc/delete_container.yml -i logic/inventory/hosts.yml -v --extra-vars '"+extra_vars+"'")
            raise

        #configure transit
        try:
            t_name_arg = "t_name="+l1_transit_name_ansible

            t_loopback_ip = raas_utils.get_new_veth_subnet('loopbacks')
            t_loopback_ip_arg = "t_loopback_ip="+str(t_loopback_ip)

            network=raas_utils.get_new_veth_subnet('l1t_h')
            subnet = network.split('/')

            t_h_ip = str(ipaddress.ip_address(subnet[0])+1) + '/' + subnet[1]
            t_h_ip_arg = "t_h_ip="+t_h_ip

            h_t_ip = str(ipaddress.ip_address(subnet[0])+2) + '/' + subnet[1]
            h_t_ip_arg = "h_t_ip="+h_t_ip

            c_hyp_id = l1_transit_name_ansible.split('_')[0]
            t_hyp_id = l1_transit_name_ansible.split('_')[1]

            ve_t_h_arg = "ve_t_h=" + c_hyp_id + '_ve_' + t_hyp_id + '_h'
示例#5
0
            c_ram_arg = " c_ram="+"1G"

            #create container
            try:
                extra_vars = constants.ansible_become_pass + " " + \
                        leaf_name_hyp_arg + " " + hypervisor_arg + " " + c_vcpu_arg + c_ram_arg
                
                raas_utils.run_playbook("ansible-playbook logic/misc/create_container.yml -i logic/inventory/hosts.yml -v --extra-vars '"+extra_vars+"'")
            except Exception as e:
                raas_utils.log_client("Container creation failed......aborting")
                raas_utils.log_service("create container failed "+ str(e))
                raise

            l_name_arg = "l_name=" + leaf_name_hyp

            t_loopback_ip = raas_utils.get_new_veth_subnet('loopbacks')
            t_loopback_ip_arg = "t_loopback_ip="+str(t_loopback_ip)

            extra_vars = constants.ansible_become_pass + " " + \
                    l_name_arg + " " + " " + l_br_arg + " " + \
                    hypervisor_arg + " " + t_loopback_ip_arg

            if (dhcp_flag):
                extra_vars += l_ip_arg + " " + dhcp_range_arg 

            #create bridge (with or without dhcp decided by extra_vars)
            try:
                raas_utils.run_playbook("ansible-playbook logic/subnet/create_bridge.yml -i logic/inventory/hosts.yml -v --extra-vars '"+extra_vars+"'")
            except Exception as e:
                raas_utils.log_client("create bridge failed.....aborting")
                raas_utils.log_service("create bridge failed "+ str(e))
    l1_transit_name = connection_data["l1_transit_name"]
    l1_transit_hypervisor_name = connection_data["l1_transit_hypervisor_name"]
    l1_transit_id = hyp_utils.get_hyp_l1_transit_name(l1_transit_hypervisor_name,l1_transit_name)
    l1_hypervisor_arg = " hypervisor=" + l1_transit_hypervisor_name

    l2_transit_name = connection_data["l2_transit_name"]
    l2_transit_hypervisor_name = connection_data["l2_transit_hypervisor_name"]
    l2_transit_id = hyp_utils.get_hyp_l2_transit_name(l2_transit_hypervisor_name,l2_transit_name)
    l2_hypervisor_arg = " hypervisor=" + l2_transit_hypervisor_name

    if (l1_transit_hypervisor_name == l2_transit_hypervisor_name):
        #connect l1 transit to l2 transit local
        try:

            network=raas_utils.get_new_veth_subnet('l1t_l2t')
            subnet = network.split('/')

            l1t_ip = str(ipaddress.ip_address(subnet[0])+1) + '/' + subnet[1]
            l2t_ip = str(ipaddress.ip_address(subnet[0])+2) + '/' + subnet[1]
            l1t_ip_arg = " ns1_ip=" + l1t_ip
            l2t_ip_arg = " ns2_ip=" + l2t_ip 

            veth_1=" ve_ns1_ns2=c" + cid + "ve" + l1_transit_id.split('_')[1] + l2_transit_id.split('_')[1]
            veth_2=" ve_ns2_ns1=c" + cid + "ve" + l2_transit_id.split('_')[1] + l1_transit_id.split('_')[1]
            l2_transit_id_arg=" ns2="+l2_transit_id
            l1_transit_id_arg=" ns1="+l1_transit_id

            extra_vars = constants.ansible_become_pass + l1t_ip_arg + l2t_ip_arg + \
                        veth_1 + veth_2 + l1_transit_id_arg + l2_transit_id_arg + " " + l1_hypervisor_arg
            raas_utils.run_playbook("ansible-playbook logic/misc/connect_ns_ns.yml -i logic/inventory/hosts.yml -v --extra-vars '"+extra_vars+"'")    
示例#7
0
        #connect to available spines
        try:
            spines_data = raas_utils.get_all_spines(vpc_name)
            #l_s_net,l_s_br,ve_l_s,ve_s_l,s_name,l_name,subnet_ip,subnet_range
            #e.g. c1_br_l1_s1,c1_net_l1_s1,c1_ve_l1_s1,c1_ve_s1_l1,
            spine_ips = []

            ssh_common_args = " --ssh-common-args='-o ProxyCommand=\"ssh -i " + constants.ssh_file + " ece792@" + hypervisor_ip + " " +\
                      "-W %h:%p\"'"

            for spine in spines_data:
                spine_id = hyp_utils.get_hyp_spine_name(
                    hypervisor, vpc_name, spine)

                network = raas_utils.get_new_veth_subnet('lns_spine')
                subnet = network.split('/')
                b_ip = str(ipaddress.ip_address(subnet[0]) +
                           1) + '/' + subnet[1]
                dhcp_range = str(ipaddress.ip_address(subnet[0])+2)+','+ \
                        str(ipaddress.ip_address(subnet[0])+6)

                net_name = vpc_id + "_net_l" + str(lid) + "_" + spine_id.split(
                    '_')[2]

                l_s_net_arg = " l_s_net=" + net_name
                br_name = vpc_id + "_br_l" + str(lid) + "_" + spine_id.split(
                    '_')[2]
                l_s_br_arg = " l_s_br=" + br_name
                ve_l_s = vpc_id + "_ve_l" + str(lid) + "_" + spine_id.split(
                    '_')[2]