def test_default_create(self, mock_get_client, mock_add_node): mock_get_client.return_value = self.mock_client self.mock_client.node.create.return_value = self.node node_cache.create_node('fake') self.mock_client.node.create.assert_called_once_with(driver='fake') mock_add_node.assert_called_once_with(self.node.uuid, ironic=self.mock_client)
def test_create_client_error(self, mock_get_client, mock_add_node): mock_get_client.return_value = self.mock_client self.mock_client.node.create.side_effect = ( node_cache.exceptions.InvalidAttribute) node_cache.create_node('fake') mock_get_client.assert_called_once_with() self.mock_client.node.create.assert_called_once_with(driver='fake') self.assertFalse(mock_add_node.called)
def test_create_with_args(self, mock_get_client, mock_add_node): mock_get_client.return_value = self.mock_client self.mock_client.node.create.return_value = self.node node_cache.create_node('agent_ipmitool', ironic=self.mock_client) self.assertFalse(mock_get_client.called) self.mock_client.node.create.assert_called_once_with( driver='agent_ipmitool') mock_add_node.assert_called_once_with(self.node.uuid, ironic=self.mock_client)
def enroll_node_not_found_hook(introspection_data, **kwargs): node_attr = CONF.discovery.enroll_node_fields.copy() ironic = ir_utils.get_client() node_driver_info = _extract_node_driver_info(introspection_data) node_attr['driver_info'] = node_driver_info # NOTE(rpittau) by default, if the provision_state is None, it will # be set to 'available' by openstacksdk, blocking the inspection of the # node in this phase, as it's not a valid state for inspection. node_attr['provision_state'] = 'enroll' node_driver = CONF.discovery.enroll_node_driver _check_existing_nodes(introspection_data, node_driver_info, ironic) LOG.debug( 'Creating discovered node with driver %(driver)s and ' 'attributes: %(attr)s', { 'driver': node_driver, 'attr': node_attr }, data=introspection_data) # NOTE(aarefiev): This flag allows to distinguish enrolled manually # and auto-discovered nodes in the introspection rules. introspection_data['auto_discovered'] = True return node_cache.create_node(node_driver, ironic=ironic, **node_attr)
def enroll_node_not_found_hook(introspection_data, **kwargs): node_attr = {} ironic = ir_utils.get_client() node_driver_info = _extract_node_driver_info(introspection_data) node_attr['driver_info'] = node_driver_info node_driver = CONF.discovery.enroll_node_driver _check_existing_nodes(introspection_data, node_driver_info, ironic) LOG.debug('Creating discovered node with driver %(driver)s and ' 'attributes: %(attr)s', {'driver': node_driver, 'attr': node_attr}, data=introspection_data) # NOTE(aarefiev): This flag allows to distinguish enrolled manually # and auto-discovered nodes in the introspection rules. introspection_data['auto_discovered'] = True return node_cache.create_node(node_driver, ironic=ironic, **node_attr)