Skip to content

Commit 2525d05

Browse files
Merge pull request #1882 from caberos/issue1879
Unable to determine file\block storage limits per datacenter
2 parents f8dfd6f + bd619c1 commit 2525d05

File tree

5 files changed

+88
-17
lines changed

5 files changed

+88
-17
lines changed

SoftLayer/CLI/block/limit.py

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,30 @@
1515

1616
@click.command(cls=SoftLayer.CLI.command.SLCommand, )
1717
@click.option('--sortby', help='Column to sort by', default='Datacenter')
18+
@click.option('--datacenter', '-d', help='Filter by datacenter')
1819
@environment.pass_env
19-
def cli(env, sortby):
20+
def cli(env, sortby, datacenter):
2021
"""List number of block storage volumes limit per datacenter."""
2122
block_manager = SoftLayer.BlockStorageManager(env.client)
2223
block_volumes = block_manager.list_block_volume_limit()
2324

2425
table = formatting.KeyValueTable(DEFAULT_COLUMNS)
2526
table.sortby = sortby
26-
for volume in block_volumes:
27-
datacenter_name = volume['datacenterName']
28-
maximum_available_count = volume['maximumAvailableCount']
29-
provisioned_count = volume['provisionedCount']
30-
table.add_row([datacenter_name, maximum_available_count, provisioned_count])
27+
28+
for volumen in block_volumes:
29+
if datacenter:
30+
if volumen.get('datacenterName') != '':
31+
if volumen.get('datacenterName') == datacenter:
32+
table.add_row([volumen.get('datacenterName'),
33+
volumen.get('maximumAvailableCount'),
34+
volumen.get('provisionedCount')])
35+
break
36+
else:
37+
if volumen.get('datacenterName') != '':
38+
table.add_row([volumen.get('datacenterName'), volumen.get('maximumAvailableCount'),
39+
volumen.get('provisionedCount')])
40+
else:
41+
table.add_row([' - ',
42+
volumen.get('maximumAvailableCount'),
43+
volumen.get('provisionedCount')])
3144
env.fout(table)

SoftLayer/CLI/file/limit.py

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,29 @@
1515

1616
@click.command(cls=SoftLayer.CLI.command.SLCommand, )
1717
@click.option('--sortby', help='Column to sort by', default='Datacenter')
18+
@click.option('--datacenter', '-d', help='Filter by datacenter')
1819
@environment.pass_env
19-
def cli(env, sortby):
20+
def cli(env, sortby, datacenter):
2021
"""List number of block storage volumes limit per datacenter."""
2122
file_manager = SoftLayer.FileStorageManager(env.client)
2223
file_volumes = file_manager.list_file_volume_limit()
2324

2425
table = formatting.KeyValueTable(DEFAULT_COLUMNS)
2526
table.sortby = sortby
26-
for volume in file_volumes:
27-
datacenter_name = volume['datacenterName']
28-
maximum_available_count = volume['maximumAvailableCount']
29-
provisioned_count = volume['provisionedCount']
30-
table.add_row([datacenter_name, maximum_available_count, provisioned_count])
27+
for volumen in file_volumes:
28+
if datacenter:
29+
if volumen.get('datacenterName') != '':
30+
if volumen.get('datacenterName') == datacenter:
31+
table.add_row([volumen.get('datacenterName'),
32+
volumen.get('maximumAvailableCount'),
33+
volumen.get('provisionedCount')])
34+
break
35+
else:
36+
if volumen.get('datacenterName') != '':
37+
table.add_row([volumen.get('datacenterName'), volumen.get('maximumAvailableCount'),
38+
volumen.get('provisionedCount')])
39+
else:
40+
table.add_row([' - ',
41+
volumen.get('maximumAvailableCount'),
42+
volumen.get('provisionedCount')])
3143
env.fout(table)

SoftLayer/fixtures/SoftLayer_Network_Storage.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -234,11 +234,21 @@
234234
enableSnapshots = True
235235
disableSnapshots = True
236236

237-
getVolumeCountLimits = {
238-
'datacenterName': 'global',
239-
'maximumAvailableCount': 300,
240-
'provisionedCount': 100
241-
}
237+
getVolumeCountLimits = [{
238+
"datacenterName": "global",
239+
"maximumAvailableCount": 700,
240+
"provisionedCount": 2632
241+
},
242+
{
243+
"maximumAvailableCount": 50,
244+
"provisionedCount": 2632
245+
},
246+
{
247+
"datacenterName": "dal13",
248+
"maximumAvailableCount": 52,
249+
"provisionedCount": 30
250+
},
251+
]
242252

243253
refreshDuplicate = {
244254
'dependentDuplicate': 1

tests/CLI/modules/block_tests.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -779,6 +779,24 @@ def test_volume_limit(self, list_mock):
779779
result = self.run_command(['block', 'volume-limits'])
780780
self.assert_no_fail(result)
781781

782+
def test_volume_limit_empty_datacenter(self):
783+
expect_result = {
784+
'dal13': 52,
785+
'global': 700,
786+
'null': 50
787+
}
788+
result = self.run_command(['block', 'volume-limits'])
789+
self.assert_no_fail(result)
790+
self.assertEqual(json.loads(result.output), expect_result)
791+
792+
def test_volume_limit_datacenter(self):
793+
expect_result = {
794+
"dal13": 52
795+
}
796+
result = self.run_command(['block', 'volume-limits', '-d', 'dal13'])
797+
self.assert_no_fail(result)
798+
self.assertEqual(json.loads(result.output), expect_result)
799+
782800
def test_dupe_refresh(self):
783801
result = self.run_command(['block', 'volume-refresh', '102', '103'])
784802

tests/CLI/modules/file_tests.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -761,6 +761,24 @@ def test_volume_limit(self, list_mock):
761761
result = self.run_command(['file', 'volume-limits'])
762762
self.assert_no_fail(result)
763763

764+
def test_volume_limit_empty_datacenter(self):
765+
expect_result = {
766+
'dal13': 52,
767+
'global': 700,
768+
'null': 50
769+
}
770+
result = self.run_command(['file', 'volume-limits'])
771+
self.assert_no_fail(result)
772+
self.assertEqual(json.loads(result.output), expect_result)
773+
774+
def test_volume_limit_datacenter(self):
775+
expect_result = {
776+
"dal13": 52
777+
}
778+
result = self.run_command(['file', 'volume-limits', '-d', 'dal13'])
779+
self.assert_no_fail(result)
780+
self.assertEqual(json.loads(result.output), expect_result)
781+
764782
def test_dupe_refresh(self):
765783
result = self.run_command(['file', 'volume-refresh', '102', '103'])
766784

0 commit comments

Comments
 (0)