diff --git a/karborclient/tests/unit/v1/test_restores.py b/karborclient/tests/unit/v1/test_restores.py index e78cd68..a39c978 100644 --- a/karborclient/tests/unit/v1/test_restores.py +++ b/karborclient/tests/unit/v1/test_restores.py @@ -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') diff --git a/karborclient/v1/restores.py b/karborclient/v1/restores.py index f5a60ce..4c0ecb0 100644 --- a/karborclient/v1/restores.py +++ b/karborclient/v1/restores.py @@ -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') diff --git a/karborclient/v1/shell.py b/karborclient/v1/shell.py index 0e51109..dda6270 100644 --- a/karborclient/v1/shell.py +++ b/karborclient/v1/shell.py @@ -221,6 +221,14 @@ def _extract_resources(args): @utils.arg('restore_target', metavar='', help='Restore target.') +@utils.arg('restore_username', + metavar='', + default="", + help='Username to restore target.') +@utils.arg('restore_password', + metavar='', + 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())