Merge "Add 'openstack server create --use-config-drive'"
This commit is contained in:
		@@ -707,12 +707,30 @@ class CreateServer(command.ShowOne):
 | 
			
		||||
            default={},
 | 
			
		||||
            help=_('Hints for the scheduler (optional extension)'),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
        config_drive_group = parser.add_mutually_exclusive_group()
 | 
			
		||||
        config_drive_group.add_argument(
 | 
			
		||||
            '--use-config-drive',
 | 
			
		||||
            action='store_true',
 | 
			
		||||
            dest='config_drive',
 | 
			
		||||
            help=_("Enable config drive."),
 | 
			
		||||
        )
 | 
			
		||||
        config_drive_group.add_argument(
 | 
			
		||||
            '--no-config-drive',
 | 
			
		||||
            action='store_false',
 | 
			
		||||
            dest='config_drive',
 | 
			
		||||
            help=_("Disable config drive."),
 | 
			
		||||
        )
 | 
			
		||||
        # TODO(stephenfin): Drop support in the next major version bump after
 | 
			
		||||
        # Victoria
 | 
			
		||||
        config_drive_group.add_argument(
 | 
			
		||||
            '--config-drive',
 | 
			
		||||
            metavar='<config-drive-volume>|True',
 | 
			
		||||
            default=False,
 | 
			
		||||
            help=_('Use specified volume as the config drive, '
 | 
			
		||||
                   'or \'True\' to use an ephemeral drive'),
 | 
			
		||||
            help=_(
 | 
			
		||||
                "**Deprecated** Use specified volume as the config drive, "
 | 
			
		||||
                "or 'True' to use an ephemeral drive. Replaced by "
 | 
			
		||||
                "'--use-config-drive'."
 | 
			
		||||
            ),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--min',
 | 
			
		||||
@@ -1013,9 +1031,12 @@ class CreateServer(command.ShowOne):
 | 
			
		||||
            else:
 | 
			
		||||
                hints[key] = values
 | 
			
		||||
 | 
			
		||||
        # What does a non-boolean value for config-drive do?
 | 
			
		||||
        # --config-drive argument is either a volume id or
 | 
			
		||||
        # 'True' (or '1') to use an ephemeral volume
 | 
			
		||||
        if isinstance(parsed_args.config_drive, bool):
 | 
			
		||||
            # NOTE(stephenfin): The API doesn't accept False as a value :'(
 | 
			
		||||
            config_drive = parsed_args.config_drive or None
 | 
			
		||||
        else:
 | 
			
		||||
            # TODO(stephenfin): Remove when we drop support for
 | 
			
		||||
            # '--config-drive'
 | 
			
		||||
            if str(parsed_args.config_drive).lower() in ("true", "1"):
 | 
			
		||||
                config_drive = True
 | 
			
		||||
            elif str(parsed_args.config_drive).lower() in ("false", "0",
 | 
			
		||||
 
 | 
			
		||||
@@ -857,6 +857,7 @@ class TestServerCreate(TestServer):
 | 
			
		||||
            '--key-name', 'keyname',
 | 
			
		||||
            '--property', 'Beta=b',
 | 
			
		||||
            '--security-group', 'securitygroup',
 | 
			
		||||
            '--use-config-drive',
 | 
			
		||||
            '--hint', 'a=b',
 | 
			
		||||
            '--hint', 'a=c',
 | 
			
		||||
            self.new_server.name,
 | 
			
		||||
@@ -868,7 +869,7 @@ class TestServerCreate(TestServer):
 | 
			
		||||
            ('property', {'Beta': 'b'}),
 | 
			
		||||
            ('security_group', ['securitygroup']),
 | 
			
		||||
            ('hint', {'a': ['b', 'c']}),
 | 
			
		||||
            ('config_drive', False),
 | 
			
		||||
            ('config_drive', True),
 | 
			
		||||
            ('server_name', self.new_server.name),
 | 
			
		||||
        ]
 | 
			
		||||
        parsed_args = self.check_parser(self.cmd, arglist, verifylist)
 | 
			
		||||
@@ -900,7 +901,7 @@ class TestServerCreate(TestServer):
 | 
			
		||||
            block_device_mapping_v2=[],
 | 
			
		||||
            nics=[],
 | 
			
		||||
            scheduler_hints={'a': ['b', 'c']},
 | 
			
		||||
            config_drive=None,
 | 
			
		||||
            config_drive=True,
 | 
			
		||||
        )
 | 
			
		||||
        # ServerManager.create(name, image, flavor, **kwargs)
 | 
			
		||||
        self.servers_mock.create.assert_called_with(
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,8 @@
 | 
			
		||||
---
 | 
			
		||||
deprecations:
 | 
			
		||||
  - |
 | 
			
		||||
    The ``--config-drive`` option on the ``openstack server create`` command
 | 
			
		||||
    has been deprecated in favour of the ``--use-config-drive`` and
 | 
			
		||||
    ``--no-config-drive`` arguments. The ``--config-drive`` option expected
 | 
			
		||||
    either a string or bool-like argument, but the nova API has only supported
 | 
			
		||||
    boolean values since API v2.1 was introduced.
 | 
			
		||||
		Reference in New Issue
	
	Block a user