Python django.db.models.get_model() Examples

The following are 30 code examples of django.db.models.get_model(). You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may also want to check out all available functions/classes of the module django.db.models , or try the search function .
Example #1
Source File: models.py    From GloboNetworkAPI with Apache License 2.0 6 votes vote down vote up
def update_v3(self, vlan, user):
        """Update vlan."""

        try:
            env_model = get_model('ambiente', 'Ambiente')
            ogp_models = get_app('api_ogp', 'models')

            env = env_model.get_by_pk(vlan.get('environment'))

            self.ambiente = env
            self.nome = vlan.get('name')
            self.num_vlan = vlan.get('num_vlan')
            self.descricao = vlan.get('description')
            self.acl_file_name = vlan.get('acl_file_name')
            self.acl_valida = vlan.get('acl_valida', False)
            self.acl_file_name_v6 = vlan.get('acl_file_name_v6')
            self.acl_valida_v6 = vlan.get('acl_valida_v6', False)
            self.ativada = vlan.get('active', False)
            self.vrf = vlan.get('vrf')
            self.acl_draft = vlan.get('acl_draft')
            self.acl_draft_v6 = vlan.get('acl_draft_v6')

            old_vlan = self.get_by_pk(self.id)
        except Exception, e:
            raise VlanErrorV3(e) 
Example #2
Source File: models.py    From GloboNetworkAPI with Apache License 2.0 6 votes vote down vote up
def _is_ipv6_in_use(self, ipv6, id_vip=None):
        id_vip = id_vip if id_vip else self.id
        spm_model = get_model('requisicaovips', 'ServerPoolMember')
        vp_model = get_model('api_vip_request', 'VipRequest')

        is_in_use = True

        pm_count = spm_model.objects.filter(ipv6=ipv6).exclude(
            server_pool__vipporttopool__requisicao_vip__ipv6=self.id
        ).count()

        vip_count = vp_model.objects.filter(
            ipv6=ipv6
        ).exclude(pk=id_vip).count()

        if vip_count == 0 and pm_count == 0:
            is_in_use = False

        return is_in_use 
Example #3
Source File: xml_serializer.py    From luscan-devel with GNU General Public License v2.0 6 votes vote down vote up
def _get_model_from_node(self, node, attr):
        """
        Helper to look up a model from a <object model=...> or a <field
        rel=... to=...> node.
        """
        model_identifier = node.getAttribute(attr)
        if not model_identifier:
            raise base.DeserializationError(
                "<%s> node is missing the required '%s' attribute" \
                    % (node.nodeName, attr))
        try:
            Model = models.get_model(*model_identifier.split("."))
        except TypeError:
            Model = None
        if Model is None:
            raise base.DeserializationError(
                "<%s> node has invalid model identifier: '%s'" % \
                    (node.nodeName, model_identifier))
        return Model 
Example #4
Source File: dashboard.py    From devops with MIT License 6 votes vote down vote up
def context(self, context):
        btns = []
        for b in self.q_btns:
            btn = {}
            if 'model' in b:
                model = self.get_model(b['model'])
                if not self.user.has_perm("%s.view_%s" % (model._meta.app_label, model._meta.model_name)):
                    continue
                btn['url'] = reverse("%s:%s_%s_%s" % (self.admin_site.app_name, model._meta.app_label,
                                                      model._meta.model_name, b.get('view', 'changelist')))
                btn['title'] = model._meta.verbose_name
                btn['icon'] = self.dashboard.get_model_icon(model)
            else:
                try:
                    btn['url'] = reverse(b['url'])
                except NoReverseMatch:
                    btn['url'] = b['url']

            if 'title' in b:
                btn['title'] = b['title']
            if 'icon' in b:
                btn['icon'] = b['icon']
            btns.append(btn)

        context.update({'btns': btns}) 
Example #5
Source File: test_multidb.py    From django-sqlserver with MIT License 6 votes vote down vote up
def _test_run_sql(self, app_label, should_run, hints=None):
        with override_settings(DATABASE_ROUTERS=[MigrateEverythingRouter()]):
            project_state = self.set_up_test_model(app_label)

        sql = """
        INSERT INTO {0}_pony (pink, weight) VALUES (1, 3.55);
        INSERT INTO {0}_pony (pink, weight) VALUES (3, 5.0);
        """.format(app_label)

        operation = migrations.RunSQL(sql, hints=hints or {})
        # Test the state alteration does nothing
        new_state = project_state.clone()
        operation.state_forwards(app_label, new_state)
        self.assertEqual(new_state, project_state)
        # Test the database alteration
        self.assertEqual(project_state.apps.get_model(app_label, "Pony").objects.count(), 0)
        with connection.schema_editor() as editor:
            operation.database_forwards(app_label, editor, project_state, new_state)
        Pony = project_state.apps.get_model(app_label, "Pony")
        if should_run:
            self.assertEqual(Pony.objects.count(), 2)
        else:
            self.assertEqual(Pony.objects.count(), 0) 
Example #6
Source File: test_multidb.py    From django-sqlserver with MIT License 6 votes vote down vote up
def _test_run_python(self, app_label, should_run, hints=None):
        with override_settings(DATABASE_ROUTERS=[MigrateEverythingRouter()]):
            project_state = self.set_up_test_model(app_label)

        # Create the operation
        def inner_method(models, schema_editor):
            Pony = models.get_model(app_label, "Pony")
            Pony.objects.create(pink=1, weight=3.55)
            Pony.objects.create(weight=5)

        operation = migrations.RunPython(inner_method, hints=hints or {})
        # Test the state alteration does nothing
        new_state = project_state.clone()
        operation.state_forwards(app_label, new_state)
        self.assertEqual(new_state, project_state)
        # Test the database alteration
        self.assertEqual(project_state.apps.get_model(app_label, "Pony").objects.count(), 0)
        with connection.schema_editor() as editor:
            operation.database_forwards(app_label, editor, project_state, new_state)
        Pony = project_state.apps.get_model(app_label, "Pony")
        if should_run:
            self.assertEqual(Pony.objects.count(), 2)
        else:
            self.assertEqual(Pony.objects.count(), 0) 
Example #7
Source File: test_operations.py    From django-sqlserver with MIT License 6 votes vote down vote up
def test_alter_field_m2m(self):
        project_state = self.set_up_test_model("test_alflmm", second_model=True)

        project_state = self.apply_operations("test_alflmm", project_state, operations=[
            migrations.AddField("Pony", "stables", models.ManyToManyField("Stable", related_name="ponies"))
        ])
        Pony = project_state.apps.get_model("test_alflmm", "Pony")
        self.assertFalse(Pony._meta.get_field('stables').blank)

        project_state = self.apply_operations("test_alflmm", project_state, operations=[
            migrations.AlterField(
                "Pony", "stables", models.ManyToManyField(to="Stable", related_name="ponies", blank=True)
            )
        ])
        Pony = project_state.apps.get_model("test_alflmm", "Pony")
        self.assertTrue(Pony._meta.get_field('stables').blank) 
Example #8
Source File: test_operations.py    From django-sqlserver with MIT License 6 votes vote down vote up
def test_repoint_field_m2m(self):
        project_state = self.set_up_test_model("test_alflmm", second_model=True, third_model=True)

        project_state = self.apply_operations("test_alflmm", project_state, operations=[
            migrations.AddField("Pony", "places", models.ManyToManyField("Stable", related_name="ponies"))
        ])
        Pony = project_state.apps.get_model("test_alflmm", "Pony")

        project_state = self.apply_operations("test_alflmm", project_state, operations=[
            migrations.AlterField("Pony", "places", models.ManyToManyField(to="Van", related_name="ponies"))
        ])

        # Ensure the new field actually works
        Pony = project_state.apps.get_model("test_alflmm", "Pony")
        p = Pony.objects.create(pink=False, weight=4.55)
        p.places.create()
        self.assertEqual(p.places.count(), 1)
        p.places.all().delete() 
Example #9
Source File: test_multidb.py    From djongo with GNU Affero General Public License v3.0 6 votes vote down vote up
def _test_run_sql(self, app_label, should_run, hints=None):
        with override_settings(DATABASE_ROUTERS=[MigrateEverythingRouter()]):
            project_state = self.set_up_test_model(app_label)

        sql = """
        INSERT INTO {0}_pony (pink, weight) VALUES (1, 3.55);
        INSERT INTO {0}_pony (pink, weight) VALUES (3, 5.0);
        """.format(app_label)

        operation = migrations.RunSQL(sql, hints=hints or {})
        # Test the state alteration does nothing
        new_state = project_state.clone()
        operation.state_forwards(app_label, new_state)
        self.assertEqual(new_state, project_state)
        # Test the database alteration
        self.assertEqual(project_state.apps.get_model(app_label, "Pony").objects.count(), 0)
        with connection.schema_editor() as editor:
            operation.database_forwards(app_label, editor, project_state, new_state)
        Pony = project_state.apps.get_model(app_label, "Pony")
        if should_run:
            self.assertEqual(Pony.objects.count(), 2)
        else:
            self.assertEqual(Pony.objects.count(), 0) 
Example #10
Source File: test_multidb.py    From djongo with GNU Affero General Public License v3.0 6 votes vote down vote up
def _test_run_python(self, app_label, should_run, hints=None):
        with override_settings(DATABASE_ROUTERS=[MigrateEverythingRouter()]):
            project_state = self.set_up_test_model(app_label)

        # Create the operation
        def inner_method(models, schema_editor):
            Pony = models.get_model(app_label, "Pony")
            Pony.objects.create(pink=1, weight=3.55)
            Pony.objects.create(weight=5)

        operation = migrations.RunPython(inner_method, hints=hints or {})
        # Test the state alteration does nothing
        new_state = project_state.clone()
        operation.state_forwards(app_label, new_state)
        self.assertEqual(new_state, project_state)
        # Test the database alteration
        self.assertEqual(project_state.apps.get_model(app_label, "Pony").objects.count(), 0)
        with connection.schema_editor() as editor:
            operation.database_forwards(app_label, editor, project_state, new_state)
        Pony = project_state.apps.get_model(app_label, "Pony")
        if should_run:
            self.assertEqual(Pony.objects.count(), 2)
        else:
            self.assertEqual(Pony.objects.count(), 0) 
Example #11
Source File: test_operations.py    From djongo with GNU Affero General Public License v3.0 6 votes vote down vote up
def test_alter_field_m2m(self):
        project_state = self.set_up_test_model("test_alflmm", second_model=True)

        project_state = self.apply_operations("test_alflmm", project_state, operations=[
            migrations.AddField("Pony", "stables", models.ManyToManyField("Stable", related_name="ponies"))
        ])
        Pony = project_state.apps.get_model("test_alflmm", "Pony")
        self.assertFalse(Pony._meta.get_field('stables').blank)

        project_state = self.apply_operations("test_alflmm", project_state, operations=[
            migrations.AlterField(
                "Pony", "stables", models.ManyToManyField(to="Stable", related_name="ponies", blank=True)
            )
        ])
        Pony = project_state.apps.get_model("test_alflmm", "Pony")
        self.assertTrue(Pony._meta.get_field('stables').blank) 
Example #12
Source File: test_operations.py    From djongo with GNU Affero General Public License v3.0 6 votes vote down vote up
def test_repoint_field_m2m(self):
        project_state = self.set_up_test_model("test_alflmm", second_model=True, third_model=True)

        project_state = self.apply_operations("test_alflmm", project_state, operations=[
            migrations.AddField("Pony", "places", models.ManyToManyField("Stable", related_name="ponies"))
        ])
        Pony = project_state.apps.get_model("test_alflmm", "Pony")

        project_state = self.apply_operations("test_alflmm", project_state, operations=[
            migrations.AlterField("Pony", "places", models.ManyToManyField(to="Van", related_name="ponies"))
        ])

        # Ensure the new field actually works
        Pony = project_state.apps.get_model("test_alflmm", "Pony")
        p = Pony.objects.create(pink=False, weight=4.55)
        p.places.create()
        self.assertEqual(p.places.count(), 1)
        p.places.all().delete() 
Example #13
Source File: compat.py    From DCRM with GNU Affero General Public License v3.0 5 votes vote down vote up
def get_django_model(app_label, model_name):
        return models.get_model(app_label, model_name) 
Example #14
Source File: compat.py    From DCRM with GNU Affero General Public License v3.0 5 votes vote down vote up
def get_django_model(app_label, model_name):
        return apps.get_model(app_label, model_name) 
Example #15
Source File: utils.py    From urbanfootprint with GNU General Public License v3.0 5 votes vote down vote up
def resolve_model(class_path):
    """
    Resolves a class path to a Django model class
    :param class_path: a string model class path
    :return:
    """
    return get_model(*class_path.split('.', 1)) 
Example #16
Source File: models.py    From GloboNetworkAPI with Apache License 2.0 5 votes vote down vote up
def create_v4(self, as_equipment):
        """Create AsnEquipment relationship."""

        equipment = get_model('equipamento', 'Equipamento')

        self.equipment = equipment().get_by_pk(
            as_equipment.get('equipment'))
        self.asn = Asn().get_by_pk(as_equipment.get('asn'))

        self.save()

        return self 
Example #17
Source File: serializers.py    From GloboNetworkAPI with Apache License 2.0 5 votes vote down vote up
def get_model(self, obj):
        return self.extends_serializer(obj, 'model') 
Example #18
Source File: serializers.py    From GloboNetworkAPI with Apache License 2.0 5 votes vote down vote up
def get_model(self, obj):
        return self.extends_serializer(obj, 'model') 
Example #19
Source File: models.py    From GloboNetworkAPI with Apache License 2.0 5 votes vote down vote up
def update_v3(self, member):
        """
        Creates pool member.

        @raise ServerPoolNotFoundError
        @raise PoolError
        @raise OperationalError
        @raise IpNotFoundError
        @raise IpError
        """

        model_ip = get_model('ip', 'Ip')
        model_ipv6 = get_model('ip', 'Ipv6')
        pools_exceptions = get_app('api_pools', 'exceptions')

        # Ip
        self.ip = model_ip.get_by_pk(member['ip']['id']) \
            if member['ip'] else None
        # Ipv6
        self.ipv6 = model_ipv6.get_by_pk(member['ipv6']['id']) \
            if member['ipv6'] else None

        self.weight = member['weight']
        self.priority = member['priority']
        self.port_real = member['port_real']
        self.member_status = member['member_status']
        self.limit = member['limit']
        self.save()

        if self.server_pool.dscp:
            if self.port_real != self.server_pool.default_port:

                raise pools_exceptions.PoolError(
                    'DRSL3 Restriction: Pool Member {} cannot have different'
                    ' port of Pool {}'.format(
                        str(self), str(self.server_pool)
                    )
                ) 
Example #20
Source File: models.py    From GloboNetworkAPI with Apache License 2.0 5 votes vote down vote up
def create(self, ipv4_id, networkipv4_id):
        ipv4_model = get_model('ip', 'Ip')
        networkipv4_model = get_model('ip', 'NetworkIPv4')

        ipv4 = ipv4_model.get_by_pk(ipv4_id)
        networkipv4 = networkipv4_model.get_by_pk(networkipv4_id)

        if len(DHCPRelayIPv4.objects.filter(ipv4=ipv4, networkipv4=networkipv4)) > 0:
            raise exceptions.DHCPRelayAlreadyExistsError(
                ipv4_id, networkipv4_id)

        self.ipv4 = ipv4
        self.networkipv4 = networkipv4 
Example #21
Source File: models.py    From GloboNetworkAPI with Apache License 2.0 5 votes vote down vote up
def validate_v3(self):
        """Validate networkIPv4."""
        models = get_model("ambiente", "EnvCIDR")
        if not self.network_type:
            raise NetworkIPv4ErrorV3('Network type can not null')

        # validate if network if allow in environment
        env_id = self.vlan.ambiente.id
        configs = models().get(env_id=env_id)
        self.vlan.allow_networks_environment(configs, [self], []) 
Example #22
Source File: models.py    From GloboNetworkAPI with Apache License 2.0 5 votes vote down vote up
def create(self, authenticated_user, equipment_id, id, new):
        """Persist an IPv4 and associate it to an equipment.
            If equipment was not related with VLAN environment, this makes the relationship
            @return: Nothing
            @raise NetworkIPv6NotFoundError: NetworkIPv6 does not exist.
            @raise NetworkIPv6Error: Error finding NetworkIPv6.
            @raise EquipamentoNotFoundError: Equipment does not exist.
            @raise EquipamentoError: Error finding Equipment.
            @raise IpNotAvailableError: No IP available to VLAN.
            @raise IpError: Error persisting in database.
        """
        equipamentoambiente = get_model('equipamento', 'EquipamentoAmbiente')
        equipamento = get_model('equipamento', 'Equipamento')
        configuration = get_model('config', 'Configuration')
        vlan_model = get_model('vlan', 'Vlan')
        if new is False:
            # Search vlan by id
            vlan = vlan_model().get_by_pk(id)

            # Get first networkipv4 related to vlan
            try:
                self.networkipv4 = vlan.networkipv4_set.order_by('id')[0]
            except IndexError, e:
                self.log.error(
                    u'Error finding the first networkipv4 from vlan.')
                raise NetworkIPv4NotFoundError(
                    e, u'Error finding the first networkipv4 from vlan.') 
Example #23
Source File: models.py    From GloboNetworkAPI with Apache License 2.0 5 votes vote down vote up
def get_by_octs_and_environment_vip(cls, oct1, oct2, oct3, oct4, id_evip, valid=True):
        """Get IP by octs and environment vip.
            @return: IP.
            @raise IpNotFoundByEquipAndVipError: IP is not related with equipament.
            @raise IpNotFoundError: IP is not registered.
            @raise IpError: Failed to search for the IP.
        """
        environmentvip = get_model('ambiente', 'EnvironmentVip')
        ambiente_model = get_model('ambiente', 'Ambiente')
        try:
            ips = Ip.objects.filter(oct1=oct1, oct2=oct2, oct3=oct3, oct4=oct4)
            if ips.count() == 0:
                raise IpNotFoundError(None)

            if valid is True:
                return Ip.objects.get(oct1=oct1, oct2=oct2, oct3=oct3, oct4=oct4,
                                      networkipv4__ambient_vip__id=id_evip)
            else:
                for ip in ips:
                    if ip.networkipv4.ambient_vip:
                        if ip.networkipv4.ambient_vip.id == id_evip:
                            return ip
                    else:
                        environments = ambiente_model.objects.filter(
                            vlan__networkipv4__ambient_vip__id=id_evip)
                        for env in environments:
                            if ip.networkipv4.vlan.ambiente.divisao_dc.id == env.divisao_dc.id \
                                    and ip.networkipv4.vlan.ambiente.ambiente_logico.id == env.ambiente_logico.id:
                                return ip
                raise ObjectDoesNotExist()
        except ObjectDoesNotExist, e:
            evip = environmentvip.get_by_pk(id_evip)
            msg = u'Ipv4 não está relacionado ao Ambiente Vip: %s.' % evip.show_environment_vip()
            cls.log.error(msg)
            raise IpNotFoundByEquipAndVipError(e, msg) 
Example #24
Source File: models.py    From GloboNetworkAPI with Apache License 2.0 5 votes vote down vote up
def create_v3(self, ip_equipment):
        """Inserts a relationship between IP e Equipment.
        @return: Nothing.
        @raise IpError: Failure to insert.
        @raise EquipamentoNotFoundError: Equipment do not registered.
        @raise IpNotFoundError: Ip do not registered.
        @raise IpEquipamentoDuplicatedError: IP already registered for the equipment.
        @raise EquipamentoError: Failure to search equipment.
        """
        equipamentoambiente = get_model('equipamento', 'EquipamentoAmbiente')
        equipamento = get_model('equipamento', 'Equipamento')

        self.equipamento = equipamento().get_by_pk(ip_equipment.get('equipment'))
        self.ip = Ip().get_by_pk(ip_equipment.get('ip'))

        # Validate the ip
        self.__validate_ip()

        try:

            try:
                equipment_environment = equipamentoambiente()
                equipment_environment.create_v3({
                    'equipment': self.equipamento_id,
                    'environment': self.ip.networkipv4.vlan.ambiente_id
                })
            except EquipamentoAmbienteDuplicatedError, e:
                # If already exists, OK !
                pass

            self.save() 
Example #25
Source File: models.py    From GloboNetworkAPI with Apache License 2.0 5 votes vote down vote up
def validate_v3(self):
        """
        Validate NetworkIPv6.
        """

        if not self.network_type:
            raise NetworkIPv6ErrorV3('Network type can not null')
        # validate if network if allow in environment
        models = get_model("ambiente", "EnvCIDR")

        env_id = self.vlan.ambiente.id
        configs = models().get(env_id=env_id)

        self.vlan.allow_networks_environment(configs, [], [self]) 
Example #26
Source File: models.py    From GloboNetworkAPI with Apache License 2.0 5 votes vote down vote up
def get_by_octs_and_environment_vip(cls, block1, block2, block3, block4, block5,
                                        block6, block7, block8, id_evip, valid=True):
        """
        Get Ipv6 by blocks and environment vip.
        @return: Ipv6.
        @raise IpNotFoundError: Ipv6 is not registered.
        @raise IpError: Failed to search for the Ipv6.
        """
        environmentvip = get_model('ambiente', 'EnvironmentVip')
        ambiente_model = get_model('ambiente', 'Ambiente')
        try:
            ips = Ipv6.objects.filter(
                block1=block1, block2=block2, block3=block3,
                block4=block4, block5=block5, block6=block6, block7=block7, block8=block8)
            if ips.count() == 0:
                raise IpNotFoundError(None)

            if valid is True:
                return Ipv6.objects.get(
                    block1=block1, block2=block2, block3=block3, block4=block4, block5=block5,
                    block6=block6, block7=block7, block8=block8, networkipv6__ambient_vip__id=id_evip)
            else:
                for ip in ips:
                    if ip.networkipv6.ambient_vip:
                        if ip.networkipv6.ambient_vip.id == id_evip:
                            return ip
                    else:
                        environments = ambiente_model.objects.filter(
                            vlan__networkipv6__ambient_vip__id=id_evip)
                        for env in environments:
                            if ip.networkipv6.vlan.ambiente.divisao_dc.id == env.divisao_dc.id \
                                    and ip.networkipv6.vlan.ambiente.ambiente_logico.id == env.ambiente_logico.id:
                                return ip
                raise ObjectDoesNotExist()

        except ObjectDoesNotExist, e:
            evip = environmentvip.get_by_pk(id_evip)
            msg = u'Ipv6 não está relacionado ao Ambiente Vip: %s.' % evip.show_environment_vip()
            cls.log.error(msg)
            raise IpNotFoundByEquipAndVipError(e, msg) 
Example #27
Source File: models.py    From GloboNetworkAPI with Apache License 2.0 5 votes vote down vote up
def create_v3(self, ip_equipment):
        """Inserts a relationship between IP e Equipment.
        @return: Nothing.
        @raise IpError: Failure to insert.
        @raise EquipamentoNotFoundError: Equipment do not registered.
        @raise IpNotFoundError: Ip do not registered.
        @raise IpEquipamentoDuplicatedError: IP already registered for the equipment.
        @raise EquipamentoError: Failure to search equipment.
        """
        equipamento = get_model('equipamento', 'Equipamento')
        equipamentoambiente = get_model('equipamento', 'EquipamentoAmbiente')

        self.equipamento = equipamento().get_by_pk(ip_equipment.get('equipment'))
        self.ip = Ipv6().get_by_pk(ip_equipment.get('ip'))

        # Validate the ip
        self.validate_ip()

        try:

            # All equipments related with environment of IP
            eqpts = self.ip.networkipv6.vlan.ambiente\
                .equipamentoambiente_set.all()\
                .values_list('equipamento', flat=True)

            if ip_equipment.get('equipment') not in eqpts:
                ea = equipamentoambiente(
                    ambiente=self.ip.networkipv6.vlan.ambiente,
                    equipamento=self.equipamento
                )
                ea.save()

            self.save()
        except Exception, e:
            self.log.error(u'Failure to insert an ip_equipamento.')
            raise IpError(e, u'Failure to insert an ip_equipamento.') 
Example #28
Source File: models.py    From GloboNetworkAPI with Apache License 2.0 5 votes vote down vote up
def create_v3(self, env_map):

        optionvip_model = get_model('requisicaovips', 'OptionVip')
        optionvipenvvip_model = get_model(
            'requisicaovips', 'OptionVipEnvironmentVip')

        self.conf = env_map.get('conf')

        optionsvip = env_map.get('optionsvip', None)
        environments = env_map.get('environments', None)

        self.finalidade_txt = env_map.get('finalidade_txt')
        self.cliente_txt = env_map.get('cliente_txt')
        self.ambiente_p44_txt = env_map.get('ambiente_p44_txt')
        self.description = env_map.get('description')

        self.save()

        if optionsvip is not None:
            optionsvip = [opt.get('option') for opt in optionsvip]
            for optionvip in optionsvip:
                option = optionvip_model.get_by_pk(optionvip)
                optenv_obj = optionvipenvvip_model()
                optenv_obj.option = option
                optenv_obj.environment = self
                optenv_obj.save()

        if environments is not None:
            environments = [opt.get('environment') for opt in environments]
            for environment in environments:
                env = Ambiente.get_by_pk(environment)
                envenv_obj = EnvironmentEnvironmentVip()
                envenv_obj.environment = env
                envenv_obj.environment_vip = self
                envenv_obj.validate()
                envenv_obj.save() 
Example #29
Source File: models.py    From GloboNetworkAPI with Apache License 2.0 5 votes vote down vote up
def update_v3(self, env_map):

        try:
            self.grupo_l3 = GrupoL3.get_by_pk(env_map.get('grupo_l3'))

            self.ambiente_logico = AmbienteLogico\
                .get_by_pk(env_map.get('ambiente_logico'))

            self.divisao_dc = DivisaoDc.get_by_pk(env_map.get('divisao_dc'))

            if env_map.get('filter', None):
                self.filter = Filter.get_by_pk(env_map.get('filter'))
            else:
                self.filter = None

            if env_map.get('father_environment'):
                self.father_environment = Ambiente\
                    .get_by_pk(env_map.get('father_environment'))
            else:
                self.father_environment = None

            self.acl_path = env_map.get('acl_path')
            self.ipv4_template = env_map.get('ipv4_template')
            self.ipv6_template = env_map.get('ipv6_template')
            self.link = env_map.get('link')
            self.min_num_vlan_1 = env_map.get('min_num_vlan_1')
            self.max_num_vlan_1 = env_map.get('max_num_vlan_1')
            self.min_num_vlan_2 = env_map.get('min_num_vlan_2')
            self.max_num_vlan_2 = env_map.get('max_num_vlan_2')
            self.default_vrf = Vrf.get_by_pk(env_map.get('default_vrf'))
            self.vrf = self.default_vrf.internal_name
            self.vxlan = env_map.get('vxlan', self.vxlan)

            if env_map.get('aws_vpc'):
                aws_vpc = get_model('api_aws', 'VPC')
                self.aws_vpc = aws_vpc.get_by_pk(env_map.get('aws_vpc'))
            else:
                self.aws_vpc = None

        except Exception, e:
            raise EnvironmentErrorV3(e) 
Example #30
Source File: models.py    From GloboNetworkAPI with Apache License 2.0 5 votes vote down vote up
def get_vrf(self):

        # get vrf to filter
        vrf = get_model('api_vrf', 'Vrf')
        vrfs = vrf.objects.filter(
            Q(
                Q(vrfvlanequipment__equipment__in=self.get_eqpt()) &
                Q(vrfvlanequipment__vlan__id=self.id)
            ) |
            Q(id=self.ambiente.default_vrf_id)
        )

        return vrfs