Add restore user and password to restore-create

Add restore_user and restore_password to restore-create command.
Will be sent in restore body as 'restore_auth'

Change-Id: Iac54ad345c4a43427b0353fde6ca9e159300d522
This commit is contained in:
Yuval Brik
2016-09-15 16:40:39 +03:00
parent b304d5978d
commit 7c3ab24bf1
3 changed files with 33 additions and 11 deletions

View File

@@ -49,7 +49,9 @@ class RestoresTest(base.TestCaseShell):
cs.restores.create('586cc6ce-e286-40bd-b2b5-dd32694d9944',
'2220f8b1-975d-4621-a872-fa9afb43cb6c',
'192.168.1.2:35357/v2.0',
'{"username": "admin"}')
'{}',
'{"type": "password", "username": "admin", '
'"password": "test"}')
mock_request.assert_called_with(
'POST',
'/restores',
@@ -57,9 +59,11 @@ class RestoresTest(base.TestCaseShell):
'restore':
{
'checkpoint_id': '2220f8b1-975d-4621-a872-fa9afb43cb6c',
'parameters': '{"username": "admin"}',
'parameters': '{}',
'provider_id': '586cc6ce-e286-40bd-b2b5-dd32694d9944',
'restore_target': '192.168.1.2:35357/v2.0'
'restore_target': '192.168.1.2:35357/v2.0',
'restore_auth': '{"type": "password", "username": '
'"admin", "password": "test"}'
}}, headers={})
@mock.patch('karborclient.common.http.HTTPClient.json_request')

View File

@@ -24,13 +24,17 @@ class Restore(base.Resource):
class RestoreManager(base.ManagerWithFind):
resource_class = Restore
def create(self, provider_id, checkpoint_id, restore_target, parameters):
body = {'restore': {'provider_id': provider_id,
'checkpoint_id': checkpoint_id,
'restore_target': restore_target,
'parameters': parameters,
}
}
def create(self, provider_id, checkpoint_id, restore_target, parameters,
restore_auth):
body = {
'restore': {
'provider_id': provider_id,
'checkpoint_id': checkpoint_id,
'restore_target': restore_target,
'restore_auth': restore_auth,
'parameters': parameters,
}
}
url = "/restores"
return self._create(url, body, 'restore')

View File

@@ -221,6 +221,14 @@ def _extract_resources(args):
@utils.arg('restore_target',
metavar='<restore_target>',
help='Restore target.')
@utils.arg('restore_username',
metavar='<username>',
default="",
help='Username to restore target.')
@utils.arg('restore_password',
metavar='<password>',
default="",
help='Password to restore target.')
@utils.arg('--parameters-json',
type=str,
dest='parameters_json',
@@ -247,8 +255,14 @@ def do_restore_create(cs, args):
"Invalid checkpoint id provided.")
restore_parameters = _extract_parameters(args)
restore_auth = {
'type': 'password',
'username': args.username,
'password': args.password,
}
restore = cs.restores.create(args.provider_id, args.checkpoint_id,
args.restore_target, restore_parameters)
args.restore_target, restore_parameters,
restore_auth)
utils.print_dict(restore.to_dict())