Beispiel #1
0
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        baremetal_client = self.app.client_manager.baremetal

        # NOTE(rloo): Do this before updating the rest. Otherwise, it won't
        #             work if parsed_args.node is the name and the name is
        #             also being modified.
        if parsed_args.target_raid_config:
            raid_config = parsed_args.target_raid_config
            if raid_config == '-':
                raid_config = utils.get_from_stdin('target_raid_config')
            raid_config = utils.handle_json_or_file_arg(raid_config)
            baremetal_client.node.set_target_raid_config(
                parsed_args.node, raid_config)

        properties = []
        if parsed_args.instance_uuid:
            instance_uuid = ["instance_uuid=%s" % parsed_args.instance_uuid]
            properties.extend(utils.args_array_to_patch('add', instance_uuid))
        if parsed_args.name:
            name = ["name=%s" % parsed_args.name]
            properties.extend(utils.args_array_to_patch('add', name))
        if parsed_args.chassis_uuid:
            chassis_uuid = ["chassis_uuid=%s" % parsed_args.chassis_uuid]
            properties.extend(utils.args_array_to_patch('add', chassis_uuid))
        if parsed_args.driver:
            driver = ["driver=%s" % parsed_args.driver]
            properties.extend(utils.args_array_to_patch('add', driver))
        if parsed_args.network_interface:
            network_interface = [
                "network_interface=%s" % parsed_args.network_interface
            ]
            properties.extend(
                utils.args_array_to_patch('add', network_interface))
        if parsed_args.resource_class:
            resource_class = ["resource_class=%s" % parsed_args.resource_class]
            properties.extend(utils.args_array_to_patch('add', resource_class))
        if parsed_args.property:
            properties.extend(
                utils.args_array_to_patch(
                    'add', ['properties/' + x for x in parsed_args.property]))
        if parsed_args.extra:
            properties.extend(
                utils.args_array_to_patch(
                    'add', ['extra/' + x for x in parsed_args.extra]))
        if parsed_args.driver_info:
            properties.extend(
                utils.args_array_to_patch(
                    'add',
                    ['driver_info/' + x for x in parsed_args.driver_info]))
        if parsed_args.instance_info:
            properties.extend(
                utils.args_array_to_patch(
                    'add',
                    ['instance_info/' + x for x in parsed_args.instance_info]))
        if properties:
            baremetal_client.node.update(parsed_args.node, properties)
        else:
            self.log.warning(_LW("Please specify what to set."))
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        baremetal_client = self.app.client_manager.baremetal

        properties = []
        if parsed_args.node_uuid:
            properties.extend(utils.args_array_to_patch(
                'add', ["node_uuid=%s" % parsed_args.node_uuid]))
        if parsed_args.type:
            properties.extend(utils.args_array_to_patch(
                'add', ["type=%s" % parsed_args.type]))
        if parsed_args.connector_id:
            properties.extend(utils.args_array_to_patch(
                'add', ["connector_id=%s" % parsed_args.connector_id]))

        if parsed_args.extra:
            properties.extend(utils.args_array_to_patch(
                'add', ["extra/" + x for x in parsed_args.extra]))

        if properties:
            baremetal_client.volume_connector.update(
                parsed_args.volume_connector, properties)
        else:
            self.log.warning("Please specify what to set.")
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        baremetal_client = self.app.client_manager.baremetal

        properties = []
        if parsed_args.node_uuid:
            properties.extend(
                utils.args_array_to_patch(
                    'add', ["node_uuid=%s" % parsed_args.node_uuid]))
        if parsed_args.type:
            properties.extend(
                utils.args_array_to_patch('add',
                                          ["type=%s" % parsed_args.type]))
        if parsed_args.connector_id:
            properties.extend(
                utils.args_array_to_patch(
                    'add', ["connector_id=%s" % parsed_args.connector_id]))

        if parsed_args.extra:
            properties.extend(
                utils.args_array_to_patch(
                    'add', ["extra/" + x for x in parsed_args.extra]))

        if properties:
            baremetal_client.volume_connector.update(
                parsed_args.volume_connector, properties)
        else:
            self.log.warning("Please specify what to set.")
Beispiel #4
0
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        baremetal_client = self.app.client_manager.baremetal

        properties = []
        if parsed_args.name:
            properties.extend(utils.args_array_to_patch('remove', ['name']))
        if parsed_args.address:
            properties.extend(utils.args_array_to_patch('remove', ['address']))
        if parsed_args.extra:
            properties.extend(
                utils.args_array_to_patch(
                    'remove', ['extra/' + x for x in parsed_args.extra]))
        if parsed_args.properties:
            properties.extend(
                utils.args_array_to_patch(
                    'remove',
                    ['properties/' + x for x in parsed_args.properties]))

        if properties:
            baremetal_client.portgroup.update(parsed_args.portgroup,
                                              properties)
        else:
            self.log.warning("Please specify what to unset.")
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        baremetal_client = self.app.client_manager.baremetal

        # NOTE(rloo): Do this before updating the rest. Otherwise, it won't
        #             work if parsed_args.node is the name and the name is
        #             also being modified.
        if parsed_args.target_raid_config:
            raid_config = parsed_args.target_raid_config
            if raid_config == '-':
                raid_config = utils.get_from_stdin('target_raid_config')
            raid_config = utils.handle_json_or_file_arg(raid_config)
            baremetal_client.node.set_target_raid_config(parsed_args.node,
                                                         raid_config)

        properties = []
        if parsed_args.instance_uuid:
            instance_uuid = ["instance_uuid=%s" % parsed_args.instance_uuid]
            properties.extend(utils.args_array_to_patch(
                'add', instance_uuid))
        if parsed_args.name:
            name = ["name=%s" % parsed_args.name]
            properties.extend(utils.args_array_to_patch(
                'add', name))
        if parsed_args.chassis_uuid:
            chassis_uuid = ["chassis_uuid=%s" % parsed_args.chassis_uuid]
            properties.extend(utils.args_array_to_patch(
                'add', chassis_uuid))
        if parsed_args.driver:
            driver = ["driver=%s" % parsed_args.driver]
            properties.extend(utils.args_array_to_patch(
                'add', driver))
        if parsed_args.network_interface:
            network_interface = [
                "network_interface=%s" % parsed_args.network_interface]
            properties.extend(utils.args_array_to_patch(
                'add', network_interface))
        if parsed_args.resource_class:
            resource_class = [
                "resource_class=%s" % parsed_args.resource_class]
            properties.extend(utils.args_array_to_patch(
                'add', resource_class))
        if parsed_args.property:
            properties.extend(utils.args_array_to_patch(
                'add', ['properties/' + x for x in parsed_args.property]))
        if parsed_args.extra:
            properties.extend(utils.args_array_to_patch(
                'add', ['extra/' + x for x in parsed_args.extra]))
        if parsed_args.driver_info:
            properties.extend(utils.args_array_to_patch(
                'add', ['driver_info/' + x for x in parsed_args.driver_info]))
        if parsed_args.instance_info:
            properties.extend(utils.args_array_to_patch(
                'add', ['instance_info/' + x for x
                        in parsed_args.instance_info]))
        if properties:
            baremetal_client.node.update(parsed_args.node, properties)
        else:
            self.log.warning(_LW("Please specify what to set."))
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        baremetal_client = self.app.client_manager.baremetal

        properties = []
        if parsed_args.description:
            description = ["description=%s" % parsed_args.description]
            properties.extend(utils.args_array_to_patch('add', description))
        if parsed_args.extra:
            properties.extend(
                utils.args_array_to_patch(
                    'add', ['extra/' + x for x in parsed_args.extra]))
        baremetal_client.chassis.update(parsed_args.chassis, properties)
 def test_args_array_to_patch(self):
     my_args = {
         'attributes': [
             'str=foo', 'int=1', 'bool=true', 'list=[1, 2, 3]',
             'dict={"foo": "bar"}'
         ],
         'op':
         'add',
     }
     patch = utils.args_array_to_patch(my_args['op'], my_args['attributes'])
     self.assertEqual([{
         'op': 'add',
         'value': 'foo',
         'path': '/str'
     }, {
         'op': 'add',
         'value': 1,
         'path': '/int'
     }, {
         'op': 'add',
         'value': True,
         'path': '/bool'
     }, {
         'op': 'add',
         'value': [1, 2, 3],
         'path': '/list'
     }, {
         'op': 'add',
         'value': {
             "foo": "bar"
         },
         'path': '/dict'
     }], patch)
def do_chassis_update(cc, args):
    """Update a chassis."""
    patch = utils.args_array_to_patch(args.op, args.attributes[0])
    try:
        chassis = cc.chassis.update(args.chassis, patch)
    except exc.HTTPNotFound:
        raise exc.CommandError('Chassis not found: %s' % args.chassis)
    _print_chassis_show(chassis)
def do_node_update(cc, args):
    """Update a node."""
    patch = utils.args_array_to_patch(args.op, args.attributes[0])
    try:
        node = cc.node.update(args.node, patch)
    except exc.HTTPNotFound:
        raise exc.CommandError('Node not found: %s' % args.node)
    _print_node_show(node)
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        baremetal_client = self.app.client_manager.baremetal
        properties = []
        if parsed_args.extra:
            properties.extend(utils.args_array_to_patch(
                'remove',
                ['extra/' + x for x in parsed_args.extra]))
        if parsed_args.portgroup:
            properties.extend(utils.args_array_to_patch('remove',
                              ['portgroup_uuid']))

        if properties:
            baremetal_client.port.update(parsed_args.port, properties)
        else:
            self.log.warning(_LW("Please specify what to unset."))
Beispiel #11
0
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        baremetal_client = self.app.client_manager.baremetal

        properties = []
        if parsed_args.description:
            properties.extend(utils.args_array_to_patch('remove',
                              ['description']))
        if parsed_args.extra:
            properties.extend(utils.args_array_to_patch('remove',
                              ['extra/' + x for x in parsed_args.extra]))

        if properties:
            baremetal_client.chassis.update(parsed_args.chassis, properties)
        else:
            self.log.warning(_LW("Please specify what to unset."))
def do_port_update(cc, args):
    """Update a port."""
    patch = utils.args_array_to_patch(args.op, args.attributes[0])
    try:
        port = cc.port.update(args.port, patch)
    except exc.HTTPNotFound:
        raise exc.CommandError('Port not found: %s' % args.port)
    _print_port_show(port)
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        baremetal_client = self.app.client_manager.baremetal

        properties = []
        if parsed_args.instance_uuid:
            instance_uuid = ["instance_uuid=%s" % parsed_args.instance_uuid]
            properties.extend(utils.args_array_to_patch(
                'add', instance_uuid))
        if parsed_args.name:
            name = ["name=%s" % parsed_args.name]
            properties.extend(utils.args_array_to_patch(
                'add', name))
        if parsed_args.driver:
            driver = ["driver=%s" % parsed_args.driver]
            properties.extend(utils.args_array_to_patch(
                'add', driver))
        if parsed_args.property:
            properties.extend(utils.args_array_to_patch(
                'add', ['properties/' + x for x in parsed_args.property]))
        if parsed_args.extra:
            properties.extend(utils.args_array_to_patch(
                'add', ['extra/' + x for x in parsed_args.extra]))
        if parsed_args.driver_info:
            properties.extend(utils.args_array_to_patch(
                'add', ['driver_info/' + x for x in parsed_args.driver_info]))
        if parsed_args.instance_info:
            properties.extend(utils.args_array_to_patch(
                'add', ['instance_info/' + x for x
                        in parsed_args.instance_info]))
        baremetal_client.node.update(parsed_args.node, properties)
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        baremetal_client = self.app.client_manager.baremetal

        properties = []
        if parsed_args.description:
            description = ["description=%s" % parsed_args.description]
            properties.extend(utils.args_array_to_patch(
                'add', description))
        if parsed_args.extra:
            properties.extend(utils.args_array_to_patch(
                'add', ['extra/' + x for x in parsed_args.extra]))

        if properties:
            baremetal_client.chassis.update(parsed_args.chassis, properties)
        else:
            self.log.warning("Please specify what to set.")
Beispiel #15
0
 def test_args_array_to_patch_remove(self):
     my_args = {
         'attributes': ['/foo', 'extra/bar'],
         'op': 'remove',
     }
     patch = utils.args_array_to_patch(my_args['op'],
                                       my_args['attributes'])
     self.assertEqual([{'op': 'remove', 'path': '/foo'},
                       {'op': 'remove', 'path': '/extra/bar'}], patch)
 def test_args_array_to_patch_remove(self):
     my_args = {
         'attributes': ['/foo', 'extra/bar'],
         'op': 'remove',
     }
     patch = utils.args_array_to_patch(my_args['op'],
                                       my_args['attributes'])
     self.assertEqual(patch, [{'op': 'remove', 'path': '/foo'},
                              {'op': 'remove', 'path': '/extra/bar'}])
Beispiel #17
0
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        baremetal_client = self.app.client_manager.baremetal

        properties = []
        if parsed_args.property:
            properties = utils.args_array_to_patch('add', parsed_args.property)
        baremetal_client.node.update(parsed_args.node, properties)
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        baremetal_client = self.app.client_manager.baremetal

        if not parsed_args.node and not parsed_args.property:
            return

        patch = utils.args_array_to_patch('remove', parsed_args.property)
        baremetal_client.node.update(parsed_args.node, patch)
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        baremetal_client = self.app.client_manager.baremetal

        properties = []
        if parsed_args.property:
            properties = utils.args_array_to_patch(
                'add', parsed_args.property)
        baremetal_client.node.update(parsed_args.node, properties)
Beispiel #20
0
    def test_do_port_update(self):
        client_mock = mock.MagicMock()
        args = mock.MagicMock()
        args.port = 'port_uuid'
        args.op = 'add'
        args.attributes = [['arg1=val1', 'arg2=val2']]

        p_shell.do_port_update(client_mock, args)
        patch = commonutils.args_array_to_patch(args.op, args.attributes[0])
        client_mock.port.update.assert_called_once_with('port_uuid', patch)
    def test_do_node_update(self):
        client_mock = mock.MagicMock()
        args = mock.MagicMock()
        args.node = "node_uuid"
        args.op = "add"
        args.attributes = [["arg1=val1", "arg2=val2"]]

        n_shell.do_node_update(client_mock, args)
        patch = commonutils.args_array_to_patch(args.op, args.attributes[0])
        client_mock.node.update.assert_called_once_with("node_uuid", patch)
Beispiel #22
0
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        baremetal_client = self.app.client_manager.baremetal

        if not parsed_args.node and not parsed_args.property:
            return

        patch = utils.args_array_to_patch('remove', parsed_args.property)
        baremetal_client.node.update(parsed_args.node, patch)
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        baremetal_client = self.app.client_manager.baremetal
        properties = []
        if parsed_args.extra:
            properties.extend(
                utils.args_array_to_patch(
                    'remove', ['extra/' + x for x in parsed_args.extra]))
        if parsed_args.portgroup:
            properties.extend(
                utils.args_array_to_patch('remove', ['portgroup_uuid']))
        if parsed_args.physical_network:
            properties.extend(
                utils.args_array_to_patch('remove', ['physical_network']))

        if properties:
            baremetal_client.port.update(parsed_args.port, properties)
        else:
            self.log.warning("Please specify what to unset.")
Beispiel #24
0
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        baremetal_client = self.app.client_manager.baremetal

        properties = []
        if parsed_args.node_uuid:
            node_uuid = ["node_uuid=%s" % parsed_args.node_uuid]
            properties.extend(utils.args_array_to_patch('add', node_uuid))
        if parsed_args.address:
            address = ["address=%s" % parsed_args.address]
            properties.extend(utils.args_array_to_patch('add', address))
        if parsed_args.extra:
            properties.extend(
                utils.args_array_to_patch(
                    'add', ['extra/' + x for x in parsed_args.extra]))
        if not properties:
            self.log.warning("Please specify what to set.")

        baremetal_client.port.update(parsed_args.port, properties)
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        baremetal_client = self.app.client_manager.baremetal

        properties = []
        if parsed_args.name:
            properties.extend(
                utils.args_array_to_patch('add',
                                          ["name=%s" % parsed_args.name]))
        if parsed_args.extra:
            properties.extend(
                utils.args_array_to_patch(
                    'add', ["extra/" + x for x in parsed_args.extra]))

        if properties:
            baremetal_client.allocation.update(parsed_args.allocation,
                                               properties)
        else:
            self.log.warning("Please specify what to set.")
    def test_do_node_update(self):
        client_mock = mock.MagicMock()
        args = mock.MagicMock()
        args.node = 'node_uuid'
        args.op = 'add'
        args.attributes = [['arg1=val1', 'arg2=val2']]
        args.json = False

        n_shell.do_node_update(client_mock, args)
        patch = commonutils.args_array_to_patch(args.op, args.attributes[0])
        client_mock.node.update.assert_called_once_with('node_uuid', patch)
Beispiel #27
0
    def test_do_node_update(self):
        client_mock = mock.MagicMock()
        args = mock.MagicMock()
        args.node = 'node_uuid'
        args.op = 'add'
        args.attributes = [['arg1=val1', 'arg2=val2']]
        args.json = False

        n_shell.do_node_update(client_mock, args)
        patch = commonutils.args_array_to_patch(args.op, args.attributes[0])
        client_mock.node.update.assert_called_once_with('node_uuid', patch)
Beispiel #28
0
    def test_do_volume_connector_update(self):
        client_mock = mock.MagicMock()
        args = mock.MagicMock()
        args.volume_connector = 'volume_connector_uuid'
        args.op = 'add'
        args.attributes = [['arg1=val1', 'arg2=val2']]
        args.json = False

        vc_shell.do_volume_connector_update(client_mock, args)
        patch = commonutils.args_array_to_patch(args.op, args.attributes[0])
        client_mock.volume_connector.update.assert_called_once_with(
            'volume_connector_uuid', patch)
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        baremetal_client = self.app.client_manager.baremetal

        properties = []
        if parsed_args.instance_uuid:
            properties.extend(utils.args_array_to_patch('remove',
                              ['instance_uuid']))
        if parsed_args.name:
            properties.extend(utils.args_array_to_patch('remove',
                              ['name']))
        if parsed_args.property:
            properties.extend(utils.args_array_to_patch('remove',
                              ['properties/' + x
                               for x in parsed_args.property]))
        if parsed_args.extra:
            properties.extend(utils.args_array_to_patch('remove',
                              ['extra/' + x for x in parsed_args.extra]))
        if parsed_args.driver_info:
            properties.extend(utils.args_array_to_patch('remove',
                              ['driver_info/' + x for x
                               in parsed_args.driver_info]))
        if parsed_args.instance_info:
            properties.extend(utils.args_array_to_patch('remove',
                              ['instance_info/' + x for x
                               in parsed_args.instance_info]))

        baremetal_client.node.update(parsed_args.node, properties)
 def test_args_array_to_patch(self):
     my_args = {
         'attributes': ['foo=bar', '/extra/bar=baz'],
         'op': 'add',
     }
     patch = utils.args_array_to_patch(my_args['op'],
                                       my_args['attributes'])
     self.assertEqual(patch, [{'op': 'add',
                               'value': 'bar',
                               'path': '/foo'},
                               {'op': 'add',
                               'value': 'baz',
                               'path': '/extra/bar'}])
 def test_args_array_to_patch(self):
     my_args = {
         'attributes': ['str=foo', 'int=1', 'bool=true',
                        'list=[1, 2, 3]', 'dict={"foo": "bar"}'],
         'op': 'add',
     }
     patch = utils.args_array_to_patch(my_args['op'],
                                       my_args['attributes'])
     self.assertEqual([{'op': 'add', 'value': 'foo', 'path': '/str'},
                       {'op': 'add', 'value': 1, 'path': '/int'},
                       {'op': 'add', 'value': True, 'path': '/bool'},
                       {'op': 'add', 'value': [1, 2, 3], 'path': '/list'},
                       {'op': 'add', 'value': {"foo": "bar"},
                        'path': '/dict'}], patch)
Beispiel #32
0
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        baremetal_client = self.app.client_manager.baremetal

        properties = []
        if parsed_args.name:
            name = ["name=%s" % parsed_args.name]
            properties.extend(utils.args_array_to_patch('add', name))
        if parsed_args.steps:
            steps = utils.handle_json_arg(parsed_args.steps, 'deploy steps')
            steps = ["steps=%s" % json.dumps(steps)]
            properties.extend(utils.args_array_to_patch('add', steps))
        if parsed_args.extra:
            properties.extend(
                utils.args_array_to_patch(
                    'add', ['extra/' + x for x in parsed_args.extra]))

        if properties:
            baremetal_client.deploy_template.update(parsed_args.template,
                                                    properties)
        else:
            self.log.warning("Please specify what to set.")
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        baremetal_client = self.app.client_manager.baremetal

        properties = []
        if parsed_args.node_uuid:
            node_uuid = ["node_uuid=%s" % parsed_args.node_uuid]
            properties.extend(utils.args_array_to_patch(
                'add', node_uuid))
        if parsed_args.address:
            address = ["address=%s" % parsed_args.address]
            properties.extend(utils.args_array_to_patch('add', address))
        if parsed_args.extra:
            properties.extend(utils.args_array_to_patch(
                'add', ['extra/' + x for x in parsed_args.extra]))
        if parsed_args.portgroup_uuid:
            portgroup_uuid = ["portgroup_uuid=%s" % parsed_args.portgroup_uuid]
            properties.extend(utils.args_array_to_patch('add', portgroup_uuid))

        if properties:
            baremetal_client.port.update(parsed_args.port, properties)
        else:
            self.log.warning(_LW("Please specify what to set."))
Beispiel #34
0
 def test_args_array_to_patch(self):
     my_args = {
         'attributes': ['foo=bar', '/extra/bar=baz'],
         'op': 'add',
     }
     patch = utils.args_array_to_patch(my_args['op'], my_args['attributes'])
     self.assertEqual([{
         'op': 'add',
         'value': 'bar',
         'path': '/foo'
     }, {
         'op': 'add',
         'value': 'baz',
         'path': '/extra/bar'
     }], patch)
Beispiel #35
0
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        baremetal_client = self.app.client_manager.baremetal

        # NOTE(rloo): Do this before removing the rest. Otherwise, it won't
        #             work if parsed_args.node is the name and the name is
        #             also being removed.
        if parsed_args.target_raid_config:
            baremetal_client.node.set_target_raid_config(parsed_args.node, {})

        properties = []
        if parsed_args.instance_uuid:
            properties.extend(
                utils.args_array_to_patch('remove', ['instance_uuid']))
        if parsed_args.name:
            properties.extend(utils.args_array_to_patch('remove', ['name']))
        if parsed_args.resource_class:
            properties.extend(
                utils.args_array_to_patch('remove', ['resource_class']))
        if parsed_args.property:
            properties.extend(
                utils.args_array_to_patch(
                    'remove',
                    ['properties/' + x for x in parsed_args.property]))
        if parsed_args.extra:
            properties.extend(
                utils.args_array_to_patch(
                    'remove', ['extra/' + x for x in parsed_args.extra]))
        if parsed_args.driver_info:
            properties.extend(
                utils.args_array_to_patch(
                    'remove',
                    ['driver_info/' + x for x in parsed_args.driver_info]))
        if parsed_args.instance_info:
            properties.extend(
                utils.args_array_to_patch(
                    'remove',
                    ['instance_info/' + x for x in parsed_args.instance_info]))
        if parsed_args.chassis_uuid:
            properties.extend(
                utils.args_array_to_patch('remove', ['chassis_uuid']))
        if properties:
            baremetal_client.node.update(parsed_args.node, properties)
        else:
            self.log.warning(_LW("Please specify what to unset."))
Beispiel #36
0
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        baremetal_client = self.app.client_manager.baremetal

        properties = []
        if parsed_args.node_uuid:
            properties.extend(
                utils.args_array_to_patch(
                    'add', ["node_uuid=%s" % parsed_args.node_uuid]))
        if parsed_args.address:
            properties.extend(
                utils.args_array_to_patch(
                    'add', ["address=%s" % parsed_args.address]))
        if parsed_args.name:
            name = ["name=%s" % parsed_args.name]
            properties.extend(utils.args_array_to_patch('add', name))
        if parsed_args.support_standalone_ports:
            properties.extend(
                utils.args_array_to_patch('add',
                                          ["standalone_ports_supported=True"]))
        if parsed_args.unsupport_standalone_ports:
            properties.extend(
                utils.args_array_to_patch(
                    'add', ["standalone_ports_supported=False"]))
        if parsed_args.mode:
            properties.extend(
                utils.args_array_to_patch('add',
                                          ["mode=%s" % parsed_args.mode]))

        if parsed_args.extra:
            properties.extend(
                utils.args_array_to_patch(
                    'add', ['extra/' + x for x in parsed_args.extra]))
        if parsed_args.properties:
            properties.extend(
                utils.args_array_to_patch(
                    'add',
                    ['properties/' + x for x in parsed_args.properties]))

        if properties:
            baremetal_client.portgroup.update(parsed_args.portgroup,
                                              properties)
        else:
            self.log.warning("Please specify what to set.")
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        baremetal_client = self.app.client_manager.baremetal

        # NOTE(rloo): Do this before removing the rest. Otherwise, it won't
        #             work if parsed_args.node is the name and the name is
        #             also being removed.
        if parsed_args.target_raid_config:
            baremetal_client.node.set_target_raid_config(parsed_args.node, {})

        properties = []
        if parsed_args.instance_uuid:
            properties.extend(utils.args_array_to_patch('remove',
                              ['instance_uuid']))
        if parsed_args.name:
            properties.extend(utils.args_array_to_patch('remove',
                              ['name']))
        if parsed_args.resource_class:
            properties.extend(utils.args_array_to_patch('remove',
                              ['resource_class']))
        if parsed_args.property:
            properties.extend(utils.args_array_to_patch('remove',
                              ['properties/' + x
                               for x in parsed_args.property]))
        if parsed_args.extra:
            properties.extend(utils.args_array_to_patch('remove',
                              ['extra/' + x for x in parsed_args.extra]))
        if parsed_args.driver_info:
            properties.extend(utils.args_array_to_patch('remove',
                              ['driver_info/' + x for x
                               in parsed_args.driver_info]))
        if parsed_args.instance_info:
            properties.extend(utils.args_array_to_patch('remove',
                              ['instance_info/' + x for x
                               in parsed_args.instance_info]))
        if parsed_args.chassis_uuid:
            properties.extend(utils.args_array_to_patch('remove',
                              ['chassis_uuid']))
        if properties:
            baremetal_client.node.update(parsed_args.node, properties)
        else:
            self.log.warning(_LW("Please specify what to unset."))
Beispiel #38
0
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        baremetal_client = self.app.client_manager.baremetal

        properties = []
        if parsed_args.node_uuid:
            node_uuid = ["node_uuid=%s" % parsed_args.node_uuid]
            properties.extend(utils.args_array_to_patch('add', node_uuid))
        if parsed_args.address:
            address = ["address=%s" % parsed_args.address]
            properties.extend(utils.args_array_to_patch('add', address))
        if parsed_args.extra:
            properties.extend(
                utils.args_array_to_patch(
                    'add', ['extra/' + x for x in parsed_args.extra]))
        if parsed_args.portgroup_uuid:
            portgroup_uuid = ["portgroup_uuid=%s" % parsed_args.portgroup_uuid]
            properties.extend(utils.args_array_to_patch('add', portgroup_uuid))
        if parsed_args.local_link_connection:
            properties.extend(
                utils.args_array_to_patch('add', [
                    'local_link_connection/' + x
                    for x in parsed_args.local_link_connection
                ]))
        if parsed_args.pxe_enabled is not None:
            properties.extend(
                utils.args_array_to_patch(
                    'add', ['pxe_enabled=%s' % parsed_args.pxe_enabled]))
        if parsed_args.physical_network:
            physical_network = [
                "physical_network=%s" % parsed_args.physical_network
            ]
            properties.extend(
                utils.args_array_to_patch('add', physical_network))
        if parsed_args.is_smartnic:
            is_smartnic = ["is_smartnic=%s" % parsed_args.is_smartnic]
            properties.extend(utils.args_array_to_patch('add', is_smartnic))

        if properties:
            baremetal_client.port.update(parsed_args.port, properties)
        else:
            self.log.warning("Please specify what to set.")
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        baremetal_client = self.app.client_manager.baremetal

        properties = []
        if parsed_args.node_uuid:
            node_uuid = ["node_uuid=%s" % parsed_args.node_uuid]
            properties.extend(utils.args_array_to_patch(
                'add', node_uuid))
        if parsed_args.address:
            address = ["address=%s" % parsed_args.address]
            properties.extend(utils.args_array_to_patch('add', address))
        if parsed_args.extra:
            properties.extend(utils.args_array_to_patch(
                'add', ['extra/' + x for x in parsed_args.extra]))
        if parsed_args.portgroup_uuid:
            portgroup_uuid = ["portgroup_uuid=%s" % parsed_args.portgroup_uuid]
            properties.extend(utils.args_array_to_patch('add', portgroup_uuid))
        if parsed_args.local_link_connection:
            properties.extend(utils.args_array_to_patch(
                'add', ['local_link_connection/' + x for x in
                        parsed_args.local_link_connection]))
        if parsed_args.pxe_enabled is not None:
            properties.extend(utils.args_array_to_patch(
                'add', ['pxe_enabled=%s' % parsed_args.pxe_enabled]))
        if parsed_args.physical_network:
            physical_network = ["physical_network=%s" %
                                parsed_args.physical_network]
            properties.extend(utils.args_array_to_patch('add',
                                                        physical_network))
        if parsed_args.is_smartnic:
            is_smartnic = ["is_smartnic=%s" % parsed_args.is_smartnic]
            properties.extend(utils.args_array_to_patch('add', is_smartnic))

        if properties:
            baremetal_client.port.update(parsed_args.port, properties)
        else:
            self.log.warning("Please specify what to set.")
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        baremetal_client = self.app.client_manager.baremetal

        properties = []
        if parsed_args.node_uuid:
            properties.extend(utils.args_array_to_patch(
                'add', ["node_uuid=%s" % parsed_args.node_uuid]))
        if parsed_args.address:
            properties.extend(utils.args_array_to_patch(
                'add', ["address=%s" % parsed_args.address]))
        if parsed_args.name:
            name = ["name=%s" % parsed_args.name]
            properties.extend(utils.args_array_to_patch(
                'add', name))
        if parsed_args.support_standalone_ports:
            properties.extend(utils.args_array_to_patch(
                'add', ["standalone_ports_supported=True"]))
        if parsed_args.unsupport_standalone_ports:
            properties.extend(utils.args_array_to_patch(
                'add', ["standalone_ports_supported=False"]))
        if parsed_args.mode:
            properties.extend(utils.args_array_to_patch(
                'add', ["mode=%s" % parsed_args.mode]))

        if parsed_args.extra:
            properties.extend(utils.args_array_to_patch(
                'add', ['extra/' + x for x in parsed_args.extra]))
        if parsed_args.properties:
            properties.extend(utils.args_array_to_patch(
                'add', ['properties/' + x for x in parsed_args.properties]))

        if properties:
            baremetal_client.portgroup.update(parsed_args.portgroup,
                                              properties)
        else:
            self.log.warning(_LW("Please specify what to set."))
Beispiel #41
0
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        baremetal_client = self.app.client_manager.baremetal

        if parsed_args.boot_index is not None and parsed_args.boot_index < 0:
            raise exc.CommandError(
                _('Expected non-negative --boot-index, got %s') %
                parsed_args.boot_index)

        properties = []
        if parsed_args.node_uuid:
            properties.extend(
                utils.args_array_to_patch(
                    'add', ["node_uuid=%s" % parsed_args.node_uuid]))
        if parsed_args.volume_type:
            properties.extend(
                utils.args_array_to_patch(
                    'add', ["volume_type=%s" % parsed_args.volume_type]))
        if parsed_args.boot_index:
            properties.extend(
                utils.args_array_to_patch(
                    'add', ["boot_index=%s" % parsed_args.boot_index]))
        if parsed_args.volume_id:
            properties.extend(
                utils.args_array_to_patch(
                    'add', ["volume_id=%s" % parsed_args.volume_id]))

        if parsed_args.properties:
            properties.extend(
                utils.args_array_to_patch(
                    'add',
                    ["properties/" + x for x in parsed_args.properties]))
        if parsed_args.extra:
            properties.extend(
                utils.args_array_to_patch(
                    'add', ["extra/" + x for x in parsed_args.extra]))

        if properties:
            baremetal_client.volume_target.update(parsed_args.volume_target,
                                                  properties)
        else:
            self.log.warning("Please specify what to set.")
    def take_action(self, parsed_args):
        self.log.debug("take_action(%s)", parsed_args)

        baremetal_client = self.app.client_manager.baremetal

        if parsed_args.boot_index is not None and parsed_args.boot_index < 0:
            raise exc.CommandError(
                _('Expected non-negative --boot-index, got %s') %
                parsed_args.boot_index)

        properties = []
        if parsed_args.node_uuid:
            properties.extend(utils.args_array_to_patch(
                'add', ["node_uuid=%s" % parsed_args.node_uuid]))
        if parsed_args.volume_type:
            properties.extend(utils.args_array_to_patch(
                'add', ["volume_type=%s" % parsed_args.volume_type]))
        if parsed_args.boot_index:
            properties.extend(utils.args_array_to_patch(
                'add', ["boot_index=%s" % parsed_args.boot_index]))
        if parsed_args.volume_id:
            properties.extend(utils.args_array_to_patch(
                'add', ["volume_id=%s" % parsed_args.volume_id]))

        if parsed_args.properties:
            properties.extend(utils.args_array_to_patch(
                'add', ["properties/" + x for x in parsed_args.properties]))
        if parsed_args.extra:
            properties.extend(utils.args_array_to_patch(
                'add', ["extra/" + x for x in parsed_args.extra]))

        if properties:
            baremetal_client.volume_target.update(
                parsed_args.volume_target, properties)
        else:
            self.log.warning("Please specify what to set.")
def do_volume_target_update(cc, args):
    """Update information about a volume target."""
    patch = utils.args_array_to_patch(args.op, args.attributes[0])
    volume_target = cc.volume_target.update(args.volume_target, patch)
    _print_volume_target_show(volume_target, json=args.json)
def do_node_update(cc, args):
    """Update information about a registered node."""
    patch = utils.args_array_to_patch(args.op, args.attributes[0])
    node = cc.node.update(args.node, patch)
    _print_node_show(node)
Beispiel #45
0
def do_portgroup_update(cc, args):
    """Update information about a portgroup."""
    patch = utils.args_array_to_patch(args.op, args.attributes[0])
    portgroup = cc.portgroup.update(args.portgroup, patch)
    _print_portgroup_show(portgroup, json=args.json)
def do_port_update(cc, args):
    """Update information about a port."""
    patch = utils.args_array_to_patch(args.op, args.attributes[0])
    port = cc.port.update(args.port, patch)
    _print_port_show(port, json=args.json)
def do_volume_target_update(cc, args):
    """Update information about a volume target."""
    patch = utils.args_array_to_patch(args.op, args.attributes[0])
    volume_target = cc.volume_target.update(args.volume_target, patch)
    _print_volume_target_show(volume_target, json=args.json)
def do_node_update(cc, args):
    """Update a node."""
    patch = utils.args_array_to_patch(args.op, args.attributes[0])
    node = cc.node.update(args.node, patch)
    _print_node_show(node)
def do_chassis_update(cc, args):
    """Update information about a chassis."""
    patch = utils.args_array_to_patch(args.op, args.attributes[0])
    chassis = cc.chassis.update(args.chassis, patch)
    _print_chassis_show(chassis)
Beispiel #50
0
    def _prepare_node_for_deploy(ironic_interface, node_id,
                                 deployment_profile):

        instance_info = deployment_profile.get('instance_info')
        node_attr = []
        for k, v in instance_info.iteritems():
            node_attr.append('instance_info/%s=%s' % (k, json.dumps(v)))

        net = deployment_profile.get('network')
        vif_id = net.get('vif_id')
        network_id = net.get('id')
        network_name = net.get('name')
        if (vif_id and any([network_name, network_id])
                or (network_name and network_id)):
            err_msg = (
                "Only one of network:name or network:id or vif_id should be specified."
            )
            LOG.error(err_msg)
            return _deploy_failed(name, err_msg)

        if network_name:
            network_id = _convert_to_uuid('networks', network_name,
                                          **connection_args)

        if network_id:
            create_port_args = {
                'name': '%s_port' % node_id,
                'network_id': network_id,
            }
            fixed_ips = []
            for fixed_ip in net.get('fixed_ips', []):
                subnet_name = fixed_ip.get('subnet_name')
                subnet_id = fixed_ip.get('subnet_id')
                if subnet_name and subnet_id:
                    err_msg = (
                        "Only one of subnet_name or subnet_id should be specified."
                    )
                    LOG.error(err_msg)
                    return _deploy_failed(name, err_msg)
                if subnet_name:
                    subnet_id = _convert_to_uuid('subnets', subnet_name,
                                                 **connection_args)
                if subnet_id:
                    fixed_ips.append({
                        'ip_address': fixed_ip['ip_address'],
                        'subnet_id': subnet_id
                    })
            if fixed_ips:
                create_port_args['fixed_ips'] = fixed_ips
            create_port_args.update(connection_args)

            vif_id = __salt__['neutronng.create_port'](**create_port_args)

        if vif_id:
            __salt__['ironicng.vif_attach'](node_ident=node_id,
                                            vif_id=vif_id,
                                            **connection_args)

        configdrive = deployment_profile.get('configdrive')
        if not configdrive:
            metadata = deployment_profile.get('metadata')
            if metadata:
                configdrive_args = {}
                userdata = metadata.get('userdata')
                instance = metadata.get('instance')
                hostname = instance.pop('hostname', node_id)
                if userdata:
                    configdrive_args['user_data'] = userdata
                if instance:
                    configdrive_args.update(instance)
                configdrive = __salt__['configdrive.generate'](
                    dst='/tmp/%s' % node_id,
                    hostname=hostname,
                    ironic_format=True,
                    **configdrive_args)['base64_gzip']

        if configdrive:
            node_attr.append('instance_info/configdrive=%s' % configdrive)

        if node_attr:
            patch = utils.args_array_to_patch('add', node_attr)
            ironic_interface.node.update(node_id, patch).to_dict()
Beispiel #51
0
 def node_update(self, node, prop, value_prop, row='properties'):
     """Add property with value to node properties."""
     args = ['{0}/{1}={2}'.format(row, prop, value_prop)]
     patch = utils.args_array_to_patch('add', args)
     return self.ironic_client.node.update(node.uuid, patch)
def do_chassis_update(cc, args):
    """Update a chassis."""
    patch = utils.args_array_to_patch(args.op, args.attributes[0])
    chassis = cc.chassis.update(args.chassis, patch)
    _print_chassis_show(chassis)
def do_node_update(cc, args):
    """Update information about a registered node."""
    patch = utils.args_array_to_patch(args.op, args.attributes[0])
    node = cc.node.update(args.node, patch)
    _print_node_show(node, json=args.json)
def do_portgroup_update(cc, args):
    """Update information about a portgroup."""
    patch = utils.args_array_to_patch(args.op, args.attributes[0])
    portgroup = cc.portgroup.update(args.portgroup, patch)
    _print_portgroup_show(portgroup)
Beispiel #55
0
def do_port_update(cc, args):
    """Update a port."""
    patch = utils.args_array_to_patch(args.op, args.attributes[0])
    port = cc.port.update(args.port, patch)
    _print_port_show(port)
Beispiel #56
0
def do_port_update(cc, args):
    """Update a port."""
    patch = utils.args_array_to_patch(args.op, args.attributes[0])
    port = cc.port.update(args.port, patch)
    _print_port_show(port)
Beispiel #57
0
 def node_update(self, node, prop, value_prop, row="properties"):
     """Add property with value to node properties."""
     args = ["{0}/{1}={2}".format(row, prop, value_prop)]
     patch = utils.args_array_to_patch("add", args)
     return self.ironic_client.node.update(node.uuid, patch)