Пример #1
0
 def post(self):
     # TODO(): podm_id should be passed in request body, if not passed
     # scheduler will decide on podm_id
     req = request.get_json()
     return utils.make_response(
         http_client.OK,
         nodes.Node(podm_id=req['podm_id']).compose_node(req))
Пример #2
0
    def node_register(self, node_uuid, param):
        LOG.debug('Registering node %s with ironic' % node_uuid)
        node_controller = nodes.Node(node_id=node_uuid)
        try:
            node_info = node_controller.get_composed_node_by_uuid()
            node_args, port_args = (
                node_controller.connection.get_ironic_node_params(
                    node_info, **param))
            ironic_node = self.ironic.node.create(**node_args)

        except Exception as e:
            message = ('Unexpected error while registering node with '
                       'Ironic: %s' % six.text_type(e))
            LOG.error(message)
            raise exception.ValenceException(message)

        node_info = db_api.Connection.update_composed_node(
            node_uuid, {
                'managed_by': 'ironic'
            }).as_dict()

        if port_args:
            # If MAC provided, create ports, else skip
            port_args['node_uuid'] = ironic_node.uuid
            self.ironic_port_create(**port_args)

        return node_info
Пример #3
0
 def post(self):
     req = request.get_json()
     return utils.make_response(
         http_client.OK,
         nodes.Node(podm_id=req['podm_id']).manage_node(req))
Пример #4
0
 def post(self, node_uuid):
     return utils.make_response(
         http_client.NO_CONTENT,
         nodes.Node(node_id=node_uuid).node_action(request.get_json()))
Пример #5
0
 def delete(self, node_uuid):
     return utils.make_response(
         http_client.OK,
         nodes.Node(node_id=node_uuid).delete_composed_node())
Пример #6
0
 def get(self, node_uuid):
     return utils.make_response(
         http_client.OK,
         nodes.Node(node_id=node_uuid).get_composed_node_by_uuid())
Пример #7
0
 def setUp(self, mock_redfish, mock_connection):
     self.node_controller = nodes.Node(podm_id='test-podm-1')
     self.node_controller.node = test_utils.get_test_composed_node_db_info()
     self.node_controller.connection = podm_base.PodManagerBase(
         'fake', 'fake-pass', 'http://fake-url')