Skip to content

Commit bea72c8

Browse files
authored
{diskpool} Refine output and add new command (Azure#3490)
* test pass * refine * test pass
1 parent 0cf0381 commit bea72c8

File tree

14 files changed

+1710
-880
lines changed

14 files changed

+1710
-880
lines changed

src/diskpool/HISTORY.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@
33
Release History
44
===============
55

6+
0.1.2
7+
++++++
8+
* Refine table output
9+
* Add `az disk-pool list-outbound-network-dependency-endpoint` command
10+
611
0.1.1
712
++++++
813
* Fix generation issue.

src/diskpool/azext_diskpool/generated/_help.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,16 @@
9898
az disk-pool delete --name "myDiskPool" --resource-group "myResourceGroup"
9999
"""
100100

101+
helps['disk-pool list-outbound-network-dependency-endpoint'] = """
102+
type: command
103+
short-summary: "Gets the network endpoints of all outbound dependencies of a Disk Pool."
104+
examples:
105+
- name: Get Disk Pool outbound network dependencies
106+
text: |-
107+
az disk-pool list-outbound-network-dependency-endpoint --name "SampleAse" --resource-group \
108+
"Sample-WestUSResourceGroup"
109+
"""
110+
101111
helps['disk-pool list-skus'] = """
102112
type: command
103113
short-summary: "Lists available Disk Pool Skus in an Azure location."

src/diskpool/azext_diskpool/generated/_params.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,11 @@ def load_arguments(self, _):
6666
c.argument('disk_pool_name', options_list=['--name', '-n', '--disk-pool-name'], type=str, help='The name of '
6767
'the Disk Pool.', id_part='name')
6868

69+
with self.argument_context('disk-pool list-outbound-network-dependency-endpoint') as c:
70+
c.argument('resource_group_name', resource_group_name_type)
71+
c.argument('disk_pool_name', options_list=['--name', '-n', '--disk-pool-name'], type=str, help='The name of '
72+
'the Disk Pool.')
73+
6974
with self.argument_context('disk-pool list-skus') as c:
7075
c.argument('location', arg_type=get_location_type(self.cli_ctx))
7176

src/diskpool/azext_diskpool/generated/action.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ def __call__(self, parser, namespace, values, option_string=None):
4949

5050
def get_action(self, values, option_string=None):
5151
try:
52-
value_chunk_list = [values[x:x + 1] for x in range(0, len(values), 1)]
52+
value_chunk_list = [values[x: x + 1] for x in range(0, len(values), 1)]
5353
value_list = []
5454
for chunk in value_chunk_list:
5555
id, = chunk
@@ -71,7 +71,7 @@ def __call__(self, parser, namespace, values, option_string=None):
7171

7272
def get_action(self, values, option_string=None):
7373
try:
74-
value_chunk_list = [values[x:x + 1] for x in range(0, len(values), 1)]
74+
value_chunk_list = [values[x: x + 1] for x in range(0, len(values), 1)]
7575
value_list = []
7676
for chunk in value_chunk_list:
7777
id, = chunk

src/diskpool/azext_diskpool/generated/commands.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ def load_command_table(self, _):
2626
g.custom_command('create', 'disk_pool_create', supports_no_wait=True)
2727
g.custom_command('update', 'disk_pool_update', supports_no_wait=True)
2828
g.custom_command('delete', 'disk_pool_delete', supports_no_wait=True, confirmation=True)
29+
g.custom_command('list-outbound-network-dependency-endpoint', 'disk_pool_list_outbound_network_dependency_endpo'
30+
'int')
2931
g.custom_command('list-skus', 'disk_pool_list_skus')
3032
g.custom_command('start', 'disk_pool_start', supports_no_wait=True)
3133
g.custom_command('stop', 'disk_pool_stop', supports_no_wait=True)

src/diskpool/azext_diskpool/generated/custom.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,13 @@ def disk_pool_delete(client,
7878
disk_pool_name=disk_pool_name)
7979

8080

81+
def disk_pool_list_outbound_network_dependency_endpoint(client,
82+
resource_group_name,
83+
disk_pool_name):
84+
return client.list_outbound_network_dependencies_endpoints(resource_group_name=resource_group_name,
85+
disk_pool_name=disk_pool_name)
86+
87+
8188
def disk_pool_list_skus(client,
8289
location):
8390
return client.list(location=location)

src/diskpool/azext_diskpool/manual/_transformers.py

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ def _value_from_path(each_item, path):
1818
try:
1919
for part in path.split('.'):
2020
obj = obj.get(part, None)
21+
if isinstance(obj, list):
22+
obj = _process_array(obj)
2123
except AttributeError:
2224
obj = None
2325
return obj or ' '
@@ -35,8 +37,56 @@ def transform_disk_pool_list_output(result):
3537
usable by the CLI and tools such as jpterm. """
3638
return build_table_output(result, [
3739
('Name', 'name'),
38-
('Availability Zones', 'availabilityZones'),
40+
('Resource Group', 'resourceGroup'),
3941
('Status', 'status'),
4042
('Location', 'location'),
4143
('Last Modified', 'systemData.lastModifiedAt')
4244
])
45+
46+
47+
def transform_disk_pool_show_output(result):
48+
from collections import OrderedDict
49+
50+
new_result = OrderedDict()
51+
new_result['Name'] = result.pop('name')
52+
new_result['Resource Group'] = result.pop('resourceGroup')
53+
new_result['Status'] = result.pop('status')
54+
new_result['Location'] = result.pop('location')
55+
new_result['Last Modified'] = result.get('systemData').get('lastModifiedAt', None) \
56+
if result.get('systemData') else None
57+
return new_result
58+
59+
60+
def transform_disk_pool_iscsi_target_list_output(result):
61+
""" Transform to convert SDK output into a form that is more readily
62+
usable by the CLI and tools such as jpterm. """
63+
return build_table_output(result, [
64+
('Name', 'name'),
65+
('Acl Mode', 'aclMode'),
66+
('Endpoints', 'endpoints'),
67+
('Status', 'status'),
68+
('Provisioning State', 'provisioningState'),
69+
('Target Iqn', 'targetIqn')
70+
])
71+
72+
73+
def _process_array(array):
74+
if array:
75+
item = ','.join(array)
76+
else:
77+
item = None
78+
return item
79+
80+
81+
def transform_disk_pool_iscsi_target_show_output(result):
82+
from collections import OrderedDict
83+
84+
new_result = OrderedDict()
85+
new_result['Name'] = result.pop('name')
86+
new_result['Acl Mode'] = result.pop('aclMode')
87+
new_result['Endpoints'] = _process_array(result.pop('endpoints'))
88+
89+
new_result['Status'] = result['status']
90+
new_result['Provisioning State'] = result['provisioningState']
91+
new_result['Target Iqn'] = result['targetIqn']
92+
return new_result

src/diskpool/azext_diskpool/manual/commands.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,22 @@
1414

1515
def load_command_table(self, _):
1616

17-
from azext_diskpool.generated._client_factory import cf_disk_pool
17+
from azext_diskpool.generated._client_factory import cf_disk_pool, cf_iscsi_target
1818
from azext_diskpool.manual._client_factory import cf_disk_pool_zone
1919
diskpool_disk_pool = CliCommandType(
2020
operations_tmpl='azext_diskpool.vendored_sdks.storagepool.operations._disk_pools_operations#DiskPoolsOperations'
2121
'.{}',
2222
client_factory=cf_disk_pool)
2323
with self.command_group('disk-pool', diskpool_disk_pool, client_factory=cf_disk_pool, is_preview=True) as g:
24-
from ._transformers import transform_disk_pool_list_output
24+
from ._transformers import transform_disk_pool_list_output, transform_disk_pool_show_output
2525
g.custom_command('list', 'disk_pool_list', table_transformer=transform_disk_pool_list_output)
2626
g.custom_command('list-skus', 'disk_pool_list_skus', client_factory=cf_disk_pool_zone)
27+
g.custom_show_command('show', 'disk_pool_show', table_transformer=transform_disk_pool_show_output)
28+
29+
with self.command_group('disk-pool iscsi-target', client_factory=cf_iscsi_target) as g:
30+
from ._transformers import transform_disk_pool_iscsi_target_list_output, \
31+
transform_disk_pool_iscsi_target_show_output
32+
g.custom_command('list', 'disk_pool_iscsi_target_list',
33+
table_transformer=transform_disk_pool_iscsi_target_list_output)
34+
g.custom_show_command('show', 'disk_pool_iscsi_target_show',
35+
table_transformer=transform_disk_pool_iscsi_target_show_output)

src/diskpool/azext_diskpool/tests/latest/recordings/test_diskpool_list_sku_scenario_manual.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ interactions:
1313
ParameterSetName:
1414
- -l
1515
User-Agent:
16-
- AZURECLI/2.24.0 azsdk-python-storagepoolmanagement/unknown Python/3.8.3 (Windows-10-10.0.19041-SP0)
16+
- AZURECLI/2.24.2 azsdk-python-storagepoolmanagement/unknown Python/3.8.3 (Windows-10-10.0.19041-SP0)
1717
method: GET
1818
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.StoragePool/locations/eastus/diskPoolZones?api-version=2021-04-01-preview
1919
response:
@@ -27,7 +27,7 @@ interactions:
2727
content-type:
2828
- application/json
2929
date:
30-
- Tue, 01 Jun 2021 10:36:03 GMT
30+
- Thu, 10 Jun 2021 09:31:53 GMT
3131
expires:
3232
- '-1'
3333
pragma:

0 commit comments

Comments
 (0)