예제 #1
0
def _create_spnlfvlans(rack, user):
    log.debug("_create_spnlfvlans")

    spn_lf_envs = models_env.Ambiente.objects.filter(
        dcroom=int(rack.dcroom.id),
        grupo_l3__nome=str(rack.dcroom.name),
        ambiente_logico__nome__in=[
            "SPINE01LEAF", "SPINE02LEAF", "SPINE03LEAF", "SPINE04LEAF"
        ])
    log.debug("SPN environments" + str(spn_lf_envs))

    rack_number = int(rack.numero)
    tipo_rede = "Ponto a ponto"
    try:
        id_network_type = models_vlan.TipoRede().get_by_name(tipo_rede).id
    except:
        network_type = models_vlan.TipoRede()
        network_type.tipo_rede = tipo_rede
        network_type.save()
        id_network_type = network_type.id
        pass
    for env in spn_lf_envs:
        env_id = env.id
        try:
            base_rack = int(rack.dcroom.racks)
            spn = int(env.ambiente_logico.nome[6])
        except:
            spn = 1
            base_rack = 1
        vlan_base = env.min_num_vlan_1
        vlan_number = int(vlan_base) + int(rack_number) + (spn - 1) * base_rack
        vlan_name = "VLAN_" + env.divisao_dc.nome + "_" + env.ambiente_logico.nome \
                    + "_" + rack.nome

        for net in env.configs:
            prefix = int(net.subnet_mask)
            block = list(IPNetwork(net.network).subnet(int(net.subnet_mask)))
            network = {
                'network': str(block[rack_number]),
                'prefix': prefix,
                'network_type': id_network_type,
                'ip_version': str(net.ip_version)
            }
            if str(net.ip_version)[-1] is "4":
                create_networkv4 = network
            elif str(net.ip_version)[-1] is "6":
                create_networkv6 = network
        obj = {
            'name': vlan_name,
            'num_vlan': vlan_number,
            'environment': env_id,
            'default_vrf': env.default_vrf.id,
            'vrf': env.vrf,
            'create_networkv4': create_networkv4 if create_networkv4 else None,
            'create_networkv6': create_networkv6 if create_networkv6 else None
        }
        try:
            facade_vlan_v3.create_vlan(obj, user)
        except:
            log.debug("Vlan object: %s" % str(obj))
예제 #2
0
    def leaf_leaf_vlans_save(self):
        log.debug("_create_lflf_vlans")

        env_lf = models_env.Ambiente.objects.filter(
            dcroom=int(self.rack.dcroom.id),
            grupo_l3__nome=str(self.rack.dcroom.name),
            ambiente_logico__nome="LEAF-LEAF")
        log.debug("Leaf-leaf environments: " + str(env_lf))

        tipo_rede = "Ponto a ponto"
        try:
            id_network_type = models_vlan.TipoRede().get_by_name(tipo_rede).id
        except:
            network_type = models_vlan.TipoRede()
            network_type.tipo_rede = tipo_rede
            network_type.save()
            id_network_type = network_type.id
            pass

        for env in env_lf:
            env_id = env.id
            vlan_number = int(env.min_num_vlan_1)
            vlan_name = "VLAN_LFxLF_" + env.divisao_dc.nome + "_" + env.grupo_l3.nome

            try:
                models_vlan.Vlan.objects.all().filter(
                    nome=vlan_name).uniqueResult()
            except:
                log.debug("debug lfxlf")
                for net in env.configs:
                    bloco = net.network
                    prefix = bloco.split('/')[-1]
                    network = {
                        'prefix': prefix,
                        'network_type': id_network_type
                    }
                    if str(net.ip_version)[-1] is "4":
                        create_networkv4 = network
                    elif str(net.ip_version)[-1] is "6":
                        create_networkv6 = network
                obj = {
                    'name':
                    vlan_name,
                    'num_vlan':
                    vlan_number,
                    'environment':
                    env_id,
                    'default_vrf':
                    env.default_vrf.id,
                    'vrf':
                    env.vrf,
                    'create_networkv4':
                    create_networkv4 if create_networkv4 else None,
                    'create_networkv6':
                    create_networkv6 if create_networkv6 else None
                }
                facade_vlan_v3.create_vlan(obj, self.user)
예제 #3
0
    def spine_leaf_vlans_save(self):
        log.debug("_create_spnlfvlans")

        spn_lf_envs = models_env.Ambiente.objects.filter(
            dcroom=int(self.rack.dcroom.id),
            grupo_l3__nome=str(self.rack.dcroom.name),
            ambiente_logico__nome__in=[
                "SPINE01LEAF", "SPINE02LEAF", "SPINE03LEAF", "SPINE04LEAF"
            ])
        log.debug("SPN environments" + str(spn_lf_envs))

        tipo_rede = "Ponto a ponto"
        try:
            id_network_type = models_vlan.TipoRede().get_by_name(tipo_rede).id
        except:
            network_type = models_vlan.TipoRede()
            network_type.tipo_rede = tipo_rede
            network_type.save()
            id_network_type = network_type.id
            pass

        for env in spn_lf_envs:

            obj = {
                'name':
                "VLAN_" + env.divisao_dc.nome + "_" +
                env.ambiente_logico.nome + "_" + self.rack.nome,
                'environment':
                env.id,
                'default_vrf':
                env.default_vrf.id,
                'vrf':
                env.vrf,
                'create_networkv4':
                None,
                'create_networkv6':
                None,
                'description':
                "Vlan spinexleaf do rack " + self.rack.nome
            }
            vlan = facade_vlan_v3.create_vlan(obj, self.user)

            log.debug("Vlan allocated: " + str(vlan))

            for config in env.configs:
                log.debug("Configs: " + str(config))
                network = dict(prefix=config.subnet_mask,
                               cluster_unit=None,
                               vlan=vlan.id,
                               network_type=id_network_type,
                               environmentvip=None)
                log.debug("Network allocated: " + str(network))
                if str(config.ip_version)[-1] is "4":
                    facade_redev4_v3.create_networkipv4(network, self.user)
                elif str(config.ip_version)[-1] is "6":
                    facade_redev6_v3.create_networkipv6(network, self.user)
예제 #4
0
def _create_spnlfvlans(rack, user):
    log.debug("_create_spnlfvlans")

    spn_lf_envs = models_env.Ambiente.objects.filter(
        dcroom=int(rack.dcroom.id),
        father_environment__isnull=False,
        grupo_l3__nome=str(rack.dcroom.name),
        ambiente_logico__nome__in=[
            "SPINE01LEAF", "SPINE02LEAF", "SPINE03LEAF", "SPINE04LEAF"
        ])
    log.debug(str(spn_lf_envs))

    rack_number = int(rack.numero)
    tipo_rede = "Ponto a ponto"
    try:
        id_network_type = models_vlan.TipoRede().get_by_name(tipo_rede).id
    except:
        network_type = models_vlan.TipoRede()
        network_type.tipo_rede = tipo_rede
        network_type.save()
        id_network_type = network_type.id
        pass
    for env in spn_lf_envs:
        log.debug(str(env))
        env_id = env.id
        vlan_base = env.min_num_vlan_1
        vlan_number = int(vlan_base) + int(rack_number)
        vlan_name = "VLAN_" + env.divisao_dc.nome + "_" + env.ambiente_logico.nome + "_" + rack.nome

        for net in env.configs:
            prefix = int(net.ip_config.new_prefix)
            network = {
                'prefix':
                prefix,  # str(list(cidr.subnet(prefix))[rack_number]),
                'network_type': id_network_type
            }
            if str(net.ip_config.type)[-1] is "4":
                create_networkv4 = network
            elif str(net.ip_config.type)[-1] is "6":
                create_networkv6 = network
        obj = {
            'name': vlan_name,
            'num_vlan': vlan_number,
            'environment': env_id,
            'default_vrf': env.default_vrf.id,
            'vrf': env.vrf,
            'create_networkv4': create_networkv4 if create_networkv4 else None,
            'create_networkv6': create_networkv6 if create_networkv6 else None
        }
        try:
            facade_vlan_v3.create_vlan(obj, user)
        except:
            log.debug("Vlan object: %s" % str(obj))
예제 #5
0
def _create_lflf_vlans(rack, user):
    log.debug("_create_lflf_vlans")

    env_lf = models_env.Ambiente.objects.filter(
        dcroom=int(rack.dcroom.id),
        father_environment__isnull=True,
        grupo_l3__nome=str(rack.dcroom.name),
        ambiente_logico__nome="LEAF-LEAF")
    log.debug(str(env_lf))
    rack_number = int(rack.numero)

    tipo_rede = "Ponto a ponto"
    try:
        id_network_type = models_vlan.TipoRede().get_by_name(tipo_rede).id
    except:
        network_type = models_vlan.TipoRede()
        network_type.tipo_rede = tipo_rede
        network_type.save()
        id_network_type = network_type.id
        pass

    for env in env_lf:
        env_id = env.id
        vlan_number = int(env.min_num_vlan_1)
        vlan_name = "VLAN_LFxLF_" + env.divisao_dc.nome + "_" + env.grupo_l3.nome

        for net in env.configs:
            bloco = net.ip_config.subnet
            prefix = bloco.split('/')[-1]
            network = {'prefix': prefix, 'network_type': id_network_type}
            if str(net.ip_config.type)[-1] is "4":
                create_networkv4 = network
            elif str(net.ip_config.type)[-1] is "6":
                create_networkv6 = network
        obj = {
            'name': vlan_name,
            'num_vlan': vlan_number,
            'environment': env_id,
            'default_vrf': env.default_vrf.id,
            'vrf': env.vrf,
            'create_networkv4': create_networkv4 if create_networkv4 else None,
            'create_networkv6': create_networkv6 if create_networkv6 else None
        }
        try:
            facade_vlan_v3.create_vlan(obj, user)
        except:
            log.debug("Vlan object: %s" % str(obj))