Skip to content

Commit e51759d

Browse files
committed
#1410 add username lookup to slcli object-storage credential limit, delete, create
1 parent 8b43846 commit e51759d

File tree

5 files changed

+35
-35
lines changed

5 files changed

+35
-35
lines changed

SoftLayer/CLI/object_storage/credential/create.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import SoftLayer
77
from SoftLayer.CLI import environment
88
from SoftLayer.CLI import formatting
9+
from SoftLayer.CLI import helpers
910

1011

1112
@click.command()
@@ -15,14 +16,15 @@ def cli(env, identifier):
1516
"""Create credentials for an IBM Cloud Object Storage Account"""
1617

1718
mgr = SoftLayer.ObjectStorageManager(env.client)
18-
credential = mgr.create_credential(identifier)
19+
storage_id = helpers.resolve_id(mgr.resolve_ids, identifier, 'Object Storage')
20+
credential = mgr.create_credential(storage_id)
1921
table = formatting.Table(['id', 'password', 'username', 'type_name'])
2022
table.sortby = 'id'
2123
table.add_row([
22-
credential['id'],
23-
credential['password'],
24-
credential['username'],
25-
credential['type']['name']
24+
credential.get('id'),
25+
credential.get('password'),
26+
credential.get('username'),
27+
credential.get('type', {}).get('name')
2628
])
2729

2830
env.fout(table)

SoftLayer/CLI/object_storage/credential/delete.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import SoftLayer
77
from SoftLayer.CLI import environment
8+
from SoftLayer.CLI import helpers
89

910

1011
@click.command()
@@ -16,6 +17,7 @@ def cli(env, identifier, credential_id):
1617
"""Delete the credential of an Object Storage Account."""
1718

1819
mgr = SoftLayer.ObjectStorageManager(env.client)
19-
credential = mgr.delete_credential(identifier, credential_id=credential_id)
20+
storage_id = helpers.resolve_id(mgr.resolve_ids, identifier, 'Object Storage')
21+
credential = mgr.delete_credential(storage_id, credential_id=credential_id)
2022

2123
env.fout(credential)

SoftLayer/CLI/object_storage/credential/limit.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import SoftLayer
77
from SoftLayer.CLI import environment
88
from SoftLayer.CLI import formatting
9+
from SoftLayer.CLI import helpers
910

1011

1112
@click.command()
@@ -15,7 +16,8 @@ def cli(env, identifier):
1516
"""Credential limits for this IBM Cloud Object Storage account."""
1617

1718
mgr = SoftLayer.ObjectStorageManager(env.client)
18-
credential_limit = mgr.limit_credential(identifier)
19+
storage_id = helpers.resolve_id(mgr.resolve_ids, identifier, 'Object Storage')
20+
credential_limit = mgr.limit_credential(storage_id)
1921
table = formatting.Table(['limit'])
2022
table.add_row([
2123
credential_limit,

SoftLayer/fixtures/SoftLayer_Network_Storage_Hub_Cleversafe_Account.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,7 @@
4646
"storageLocation": "us-standard"
4747
}
4848
]
49+
50+
getCredentialLimit = 2
51+
52+
credentialDelete = True

tests/CLI/modules/object_storage_tests.py

Lines changed: 18 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -40,47 +40,37 @@ def test_list_endpoints(self):
4040
'public': 'https://dal05/auth/v1.0/'}])
4141

4242
def test_create_credential(self):
43-
accounts = self.set_mock('SoftLayer_Network_Storage_Hub_Cleversafe_Account', 'credentialCreate')
44-
accounts.return_value = {
45-
"accountId": "12345",
46-
"createDate": "2019-04-05T13:25:25-06:00",
47-
"id": 11111,
48-
"password": "nwUEUsx6PiEoN0B1Xe9z9hUCy",
49-
"username": "XfHhBNBPlPdl",
50-
"type": {
51-
"description": "A credential for generating S3 Compatible Signatures.",
52-
"keyName": "S3_COMPATIBLE_SIGNATURE",
53-
"name": "S3 Compatible Signature"
54-
}
55-
}
56-
5743
result = self.run_command(['object-storage', 'credential', 'create', '100'])
44+
self.assert_no_fail(result)
5845

46+
@mock.patch('SoftLayer.CLI.helpers.resolve_id')
47+
def test_create_credential_by_username(self, resolve_id_mock):
48+
resolve_id_mock.return_value = 100
49+
result = self.run_command(['object-storage', 'credential', 'create', 'test'])
5950
self.assert_no_fail(result)
60-
self.assertEqual(json.loads(result.output),
61-
[{'id': 11111,
62-
'password': 'nwUEUsx6PiEoN0B1Xe9z9hUCy',
63-
'type_name': 'S3 Compatible Signature',
64-
'username': 'XfHhBNBPlPdl'}]
65-
)
6651

6752
def test_delete_credential(self):
68-
accounts = self.set_mock('SoftLayer_Network_Storage_Hub_Cleversafe_Account', 'credentialDelete')
69-
accounts.return_value = True
70-
7153
result = self.run_command(['object-storage', 'credential', 'delete', '-c', 100, '100'])
72-
7354
self.assert_no_fail(result)
7455
self.assertEqual(result.output, 'True\n')
7556

76-
def test_limit_credential(self):
77-
accounts = self.set_mock('SoftLayer_Network_Storage_Hub_Cleversafe_Account', 'getCredentialLimit')
78-
accounts.return_value = 2
57+
@mock.patch('SoftLayer.CLI.helpers.resolve_id')
58+
def test_delete_credential_by_username(self, resolve_id_mock):
59+
resolve_id_mock.return_value = 100
60+
result = self.run_command(['object-storage', 'credential', 'delete', 'test'])
61+
self.assert_no_fail(result)
7962

63+
def test_limit_credential(self):
8064
result = self.run_command(['object-storage', 'credential', 'limit', '100'])
8165

8266
self.assert_no_fail(result)
83-
self.assertEqual(json.loads(result.output), [{'limit': 2}])
67+
self.assertIn('limit', result.output)
68+
69+
@mock.patch('SoftLayer.CLI.helpers.resolve_id')
70+
def test_limit_credential_by_username(self, resolve_id_mock):
71+
resolve_id_mock.return_value = 100
72+
result = self.run_command(['object-storage', 'credential', 'limit', 'test'])
73+
self.assert_no_fail(result)
8474

8575
def test_list_credential(self):
8676
result = self.run_command(['object-storage', 'credential', 'list', '100'])

0 commit comments

Comments
 (0)