示例#1
0
文件: flat.py 项目: bacaldwell/ironic
    def add_cleaning_network(self, task):
        """Add the cleaning network to a node.

        :param task: A TaskManager instance.
        :returns: a dictionary in the form {port.uuid: neutron_port['id']}
        :raises: NetworkError, InvalidParameterValue
        """
        if not uuidutils.is_uuid_like(CONF.neutron.cleaning_network_uuid):
            raise exception.InvalidParameterValue(
                _(
                    "You must provide a valid cleaning network UUID in "
                    "[neutron]cleaning_network_uuid configuration option."
                )
            )
        # If we have left over ports from a previous cleaning, remove them
        neutron.rollback_ports(task, CONF.neutron.cleaning_network_uuid)
        LOG.info(_LI("Adding cleaning network to node %s"), task.node.uuid)
        vifs = neutron.add_ports_to_network(task, CONF.neutron.cleaning_network_uuid, is_flat=True)
        for port in task.ports:
            if port.uuid in vifs:
                internal_info = port.internal_info
                internal_info["cleaning_vif_port_id"] = vifs[port.uuid]
                port.internal_info = internal_info
                port.save()
        return vifs
示例#2
0
文件: flat.py 项目: willliuwx/ironic
 def _add_service_network(self, task, network, process):
     # If we have left over ports from a previous process, remove them
     neutron.rollback_ports(task, network)
     LOG.info('Adding %s network to node %s', process, task.node.uuid)
     vifs = neutron.add_ports_to_network(task, network)
     field = '%s_vif_port_id' % process
     for port in task.ports:
         if port.uuid in vifs:
             internal_info = port.internal_info
             internal_info[field] = vifs[port.uuid]
             port.internal_info = internal_info
             port.save()
     return vifs
示例#3
0
    def add_cleaning_network(self, task):
        """Create neutron ports for each port on task.node to boot the ramdisk.

        :param task: a TaskManager instance.
        :raises: NetworkError
        :returns: a dictionary in the form {port.uuid: neutron_port['id']}
        """
        # If we have left over ports from a previous cleaning, remove them
        neutron.rollback_ports(task, CONF.neutron.cleaning_network_uuid)
        LOG.info(_LI('Adding cleaning network to node %s'), task.node.uuid)
        vifs = neutron.add_ports_to_network(task,
                                            CONF.neutron.cleaning_network_uuid)
        for port in task.ports:
            if port.uuid in vifs:
                internal_info = port.internal_info
                internal_info['cleaning_vif_port_id'] = vifs[port.uuid]
                port.internal_info = internal_info
                port.save()
        return vifs
示例#4
0
    def add_cleaning_network(self, task):
        """Add the cleaning network to a node.

        :param task: A TaskManager instance.
        :returns: a dictionary in the form {port.uuid: neutron_port['id']}
        :raises: NetworkError, InvalidParameterValue
        """
        # If we have left over ports from a previous cleaning, remove them
        neutron.rollback_ports(task, self.get_cleaning_network_uuid())
        LOG.info(_LI('Adding cleaning network to node %s'), task.node.uuid)
        vifs = neutron.add_ports_to_network(
            task, self.get_cleaning_network_uuid())
        for port in task.ports:
            if port.uuid in vifs:
                internal_info = port.internal_info
                internal_info['cleaning_vif_port_id'] = vifs[port.uuid]
                port.internal_info = internal_info
                port.save()
        return vifs
示例#5
0
文件: flat.py 项目: Tehsmash/ironic
    def add_cleaning_network(self, task):
        """Add the cleaning network to a node.

        :param task: A TaskManager instance.
        :returns: a dictionary in the form {port.uuid: neutron_port['id']}
        :raises: NetworkError, InvalidParameterValue
        """
        # If we have left over ports from a previous cleaning, remove them
        neutron.rollback_ports(task, self.get_cleaning_network_uuid())
        LOG.info('Adding cleaning network to node %s', task.node.uuid)
        vifs = neutron.add_ports_to_network(
            task, self.get_cleaning_network_uuid())
        for port in task.ports:
            if port.uuid in vifs:
                internal_info = port.internal_info
                internal_info['cleaning_vif_port_id'] = vifs[port.uuid]
                port.internal_info = internal_info
                port.save()
        return vifs
示例#6
0
    def add_cleaning_network(self, task):
        """Create neutron ports for each port on task.node to boot the ramdisk.

        :param task: a TaskManager instance.
        :raises: NetworkError
        :returns: a dictionary in the form {port.uuid: neutron_port['id']}
        """
        # If we have left over ports from a previous cleaning, remove them
        neutron.rollback_ports(task, CONF.neutron.cleaning_network_uuid)
        LOG.info(_LI('Adding cleaning network to node %s'), task.node.uuid)
        vifs = neutron.add_ports_to_network(task,
                                            CONF.neutron.cleaning_network_uuid)
        for port in task.ports:
            if port.uuid in vifs:
                internal_info = port.internal_info
                internal_info['cleaning_vif_port_id'] = vifs[port.uuid]
                port.internal_info = internal_info
                port.save()
        return vifs
示例#7
0
    def add_provisioning_network(self, task):
        """Add the provisioning network to a node.

        :param task: A TaskManager instance.
        :raises: NetworkError
        """
        # If we have left over ports from a previous provision attempt, remove
        # them
        neutron.rollback_ports(task, self.get_provisioning_network_uuid())
        LOG.info(_LI('Adding provisioning network to node %s'), task.node.uuid)
        vifs = neutron.add_ports_to_network(
            task,
            self.get_provisioning_network_uuid(),
            security_groups=CONF.neutron.provisioning_network_security_groups)
        for port in task.ports:
            if port.uuid in vifs:
                internal_info = port.internal_info
                internal_info['provisioning_vif_port_id'] = vifs[port.uuid]
                port.internal_info = internal_info
                port.save()
示例#8
0
    def add_provisioning_network(self, task):
        """Add the provisioning network to a node.

        :param task: A TaskManager instance.
        :raises: NetworkError
        """
        # If we have left over ports from a previous provision attempt, remove
        # them
        neutron.rollback_ports(task, self.get_provisioning_network_uuid())
        LOG.info('Adding provisioning network to node %s',
                 task.node.uuid)
        vifs = neutron.add_ports_to_network(
            task, self.get_provisioning_network_uuid(),
            security_groups=CONF.neutron.provisioning_network_security_groups)
        for port in task.ports:
            if port.uuid in vifs:
                internal_info = port.internal_info
                internal_info['provisioning_vif_port_id'] = vifs[port.uuid]
                port.internal_info = internal_info
                port.save()
示例#9
0
    def add_rescuing_network(self, task):
        """Create neutron ports for each port to boot the rescue ramdisk.

        :param task: a TaskManager instance.
        :returns: a dictionary in the form {port.uuid: neutron_port['id']}
        """
        # If we have left over ports from a previous rescue, remove them
        neutron.rollback_ports(task, self.get_rescuing_network_uuid(task))
        LOG.info('Adding rescuing network to node %s', task.node.uuid)
        security_groups = CONF.neutron.rescuing_network_security_groups
        vifs = neutron.add_ports_to_network(
            task,
            self.get_rescuing_network_uuid(task),
            security_groups=security_groups)
        for port in task.ports:
            if port.uuid in vifs:
                internal_info = port.internal_info
                internal_info['rescuing_vif_port_id'] = vifs[port.uuid]
                port.internal_info = internal_info
                port.save()
        return vifs
示例#10
0
    def add_rescuing_network(self, task):
        """Create neutron ports for each port to boot the rescue ramdisk.

        :param task: a TaskManager instance.
        :returns: a dictionary in the form {port.uuid: neutron_port['id']}
        """
        # If we have left over ports from a previous rescue, remove them
        neutron.rollback_ports(task, self.get_rescuing_network_uuid(task))
        LOG.info('Adding rescuing network to node %s', task.node.uuid)
        security_groups = CONF.neutron.rescuing_network_security_groups
        vifs = neutron.add_ports_to_network(
            task,
            self.get_rescuing_network_uuid(task),
            security_groups=security_groups)
        for port in task.ports:
            if port.uuid in vifs:
                internal_info = port.internal_info
                internal_info['rescuing_vif_port_id'] = vifs[port.uuid]
                port.internal_info = internal_info
                port.save()
        return vifs
示例#11
0
    def add_cleaning_network(self, task):
        """Add the cleaning network to a node.

        :param task: A TaskManager instance.
        :returns: a dictionary in the form {port.uuid: neutron_port['id']}
        :raises: NetworkError, InvalidParameterValue
        """
        if not uuidutils.is_uuid_like(CONF.neutron.cleaning_network_uuid):
            raise exception.InvalidParameterValue(_(
                'You must provide a valid cleaning network UUID in '
                '[neutron]cleaning_network_uuid configuration option.'))
        # If we have left over ports from a previous cleaning, remove them
        neutron.rollback_ports(task, CONF.neutron.cleaning_network_uuid)
        LOG.info(_LI('Adding cleaning network to node %s'), task.node.uuid)
        vifs = neutron.add_ports_to_network(
            task, CONF.neutron.cleaning_network_uuid, is_flat=True)
        for port in task.ports:
            if port.uuid in vifs:
                internal_info = port.internal_info
                internal_info['cleaning_vif_port_id'] = vifs[port.uuid]
                port.internal_info = internal_info
                port.save()
        return vifs
示例#12
0
 def test_rollback_ports_exception(self, remove_mock, log_mock):
     remove_mock.side_effect = exception.NetworkError('boom')
     with task_manager.acquire(self.context, self.node.uuid) as task:
         neutron.rollback_ports(task, self.network_uuid)
         self.assertTrue(log_mock.exception.called)
示例#13
0
 def test_rollback_ports(self, remove_mock):
     with task_manager.acquire(self.context, self.node.uuid) as task:
         neutron.rollback_ports(task, self.network_uuid)
         remove_mock.assert_called_once_with(task, self.network_uuid)
示例#14
0
 def test_rollback_ports_exception(self, remove_mock, log_mock):
     remove_mock.side_effect = exception.NetworkError('boom')
     with task_manager.acquire(self.context, self.node.uuid) as task:
         neutron.rollback_ports(task, self.network_uuid)
         self.assertTrue(log_mock.exception.called)
示例#15
0
 def test_rollback_ports(self, remove_mock):
     with task_manager.acquire(self.context, self.node.uuid) as task:
         neutron.rollback_ports(task, self.network_uuid)
         remove_mock.assert_called_once_with(task, self.network_uuid)