Exemplo n.º 1
0
    def create_instance_sync(self, payload):
        """Notifies that an instance has been created."""
        instance_id = payload.get('instance_id')
        instance_name = payload.get('hostname')
        if self.traceable:
            LOG.info("Created instance: %s, host: %s", instance_id,
                     instance_name)

        dbi.add_or_update_instance(self.context.session, instance_id,
                                   instance_name)
        ips = payload.get('fixed_ips')
        if not ips:
            return

        macs = [ip.get('vif_mac') for ip in ips if ip.get('vif_mac')]
        ip_addresses = [ip['address'] for ip in ips]
        port_filter = {
            'mac_address': macs,
            'fixed_ips': {
                'ip_address': ip_addresses
            }
        }
        ports = self.plugin.get_ports(self.context, filters=port_filter)
        for port in ports:
            self._process_port(port, 'Instance creation', instance_name)
Exemplo n.º 2
0
    def test_add_or_update_instance(self):
        instances = {'instance-id1': 'instance-name1'}
        self._create_instances(instances)
        new_instance_name = 'instance-name-updated'
        infoblox_db.add_or_update_instance(self.ctx.session, 'instance-id1',
                                           new_instance_name)
        instance = infoblox_db.get_instance(self.ctx.session, 'instance-id1')
        self.assertEqual(new_instance_name, instance.instance_name)

        infoblox_db.add_or_update_instance(self.ctx.session, 'instance-id2',
                                           'instance-name2')
        instance = infoblox_db.get_instance(self.ctx.session, 'instance-id2')
        self.assertEqual('instance-name2', instance.instance_name)
    def test_add_or_update_instance(self):
        instances = {'instance-id1': 'instance-name1'}
        self._create_instances(instances)
        new_instance_name = 'instance-name-updated'
        infoblox_db.add_or_update_instance(self.ctx.session,
                                           'instance-id1', new_instance_name)
        instance = infoblox_db.get_instance(self.ctx.session, 'instance-id1')
        self.assertEqual(new_instance_name, instance.instance_name)

        infoblox_db.add_or_update_instance(self.ctx.session,
                                           'instance-id2', 'instance-name2')
        instance = infoblox_db.get_instance(self.ctx.session, 'instance-id2')
        self.assertEqual('instance-name2', instance.instance_name)
    def create_instance_sync(self, payload):
        """Notifies that an instance has been created."""
        instance_id = payload.get('instance_id')
        instance_name = payload.get('hostname')
        dbi.add_or_update_instance(self.context.session,
                                   instance_id, instance_name)
        if self.traceable:
            LOG.info("Created instance: %s, host: %s",
                     instance_id, instance_name)

        ips = payload.get('fixed_ips')
        if not ips:
            return

        macs = [ip.get('vif_mac') for ip in ips if ip.get('vif_mac')]
        ip_addresses = [ip['address'] for ip in ips]
        port_filter = {'mac_address': macs,
                       'fixed_ips': {'ip_address': ip_addresses}}
        ports = self.plugin.get_ports(self.context, filters=port_filter)
        for port in ports:
            self._process_port(port, 'Instance creation', instance_name)