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
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
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
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
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
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()
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()
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
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
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)
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)