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_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_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 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)
Exemplo n.º 7
0
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)
Exemplo n.º 8
0
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)
Exemplo n.º 9
0
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)