diff --git a/azure-cli.pyproj b/azure-cli.pyproj
index 642c94fb98a..4118216f5e3 100644
--- a/azure-cli.pyproj
+++ b/azure-cli.pyproj
@@ -495,6 +495,9 @@
+
+ Code
+
Code
@@ -916,7 +919,6 @@
-
diff --git a/src/command_modules/azure-cli-storage/azure/cli/command_modules/storage/_format.py b/src/command_modules/azure-cli-storage/azure/cli/command_modules/storage/_format.py
new file mode 100644
index 00000000000..7c73aab9798
--- /dev/null
+++ b/src/command_modules/azure-cli-storage/azure/cli/command_modules/storage/_format.py
@@ -0,0 +1,113 @@
+# --------------------------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# --------------------------------------------------------------------------------------------
+
+# pylint:disable=line-too-long
+
+from collections import OrderedDict
+
+def build_table_output(result, projection):
+
+ if not isinstance(result, list):
+ result = [result]
+
+ final_list = []
+
+ for item in result:
+ def _value_from_path(path):
+ obj = item # pylint: disable=cell-var-from-loop
+ try:
+ for part in path.split('.'):
+ obj = obj.get(part, None)
+ except AttributeError:
+ obj = None
+ return obj or ' '
+
+ item_dict = OrderedDict()
+ for element in projection:
+ item_dict[element[0]] = _value_from_path(element[1])
+ final_list.append(item_dict)
+ return final_list
+
+def transform_container_list(result):
+ return build_table_output(result, [
+ ('Name', 'name'),
+ ('Lease Status', 'properties.leaseStatus'),
+ ('Last Modified', 'properties.lastModified')
+ ])
+
+def transform_container_show(result):
+ return build_table_output(result, [
+ ('Name', 'name'),
+ ('Lease Status', 'properties.lease.status'),
+ ('Last Modified', 'properties.lastModified')
+ ])
+
+def transform_blob_output(result):
+ return build_table_output(result, [
+ ('Name', 'name'),
+ ('Blob Type', 'properties.blobType'),
+ ('Length', 'properties.contentLength'),
+ ('Content Type', 'properties.contentSettings.contentType'),
+ ('Last Modified', 'properties.lastModified')
+ ])
+
+def transform_share_list(result):
+ return build_table_output(result, [
+ ('Name', 'name'),
+ ('Quota', 'properties.quota'),
+ ('Last Modified', 'properties.lastModified')
+ ])
+
+def transform_file_output(result):
+ """ Transform to convert SDK file/dir list output to something that
+ more clearly distinguishes between files and directories. """
+ new_result = []
+
+ for item in result.get('items', [result]):
+ new_entry = OrderedDict()
+ item_name = item['name']
+ try:
+ _ = item['properties']['contentLength']
+ is_dir = False
+ except KeyError:
+ item_name = '{}/'.format(item_name)
+ is_dir = True
+ new_entry['Name'] = item_name
+ new_entry['Content Length'] = ' ' if is_dir else item['properties']['contentLength']
+ new_entry['Type'] = 'dir' if is_dir else 'file'
+ new_entry['Last Modified'] = item['properties']['lastModified'] or ' '
+ new_result.append(new_entry)
+ return sorted(new_result, key=lambda k: k['Name'])
+
+def transform_entity_show(result):
+ timestamp = result.pop('Timestamp')
+ result.pop('etag')
+
+ # Reassemble the output
+ new_result = OrderedDict()
+ new_result['Partition'] = result.pop('PartitionKey')
+ new_result['Row'] = result.pop('RowKey')
+ for key in sorted(result.keys()):
+ new_result[key] = result[key]
+ new_result['Timestamp'] = timestamp
+ return new_result
+
+def transform_message_show(result):
+ ordered_result = []
+ for item in result:
+ new_result = OrderedDict()
+ new_result['MessageId'] = item.pop('id')
+ new_result['Content'] = item.pop('content')
+ new_result['InsertionTime'] = item.pop('insertionTime')
+ new_result['ExpirationTime'] = item.pop('expirationTime')
+ for key in sorted(item.keys()):
+ new_result[key] = item[key]
+ ordered_result.append(new_result)
+ return ordered_result
+
+def transform_boolean_for_table(result):
+ for key in result:
+ result[key] = str(result[key])
+ return result
diff --git a/src/command_modules/azure-cli-storage/azure/cli/command_modules/storage/_help.py b/src/command_modules/azure-cli-storage/azure/cli/command_modules/storage/_help.py
index 1f66b3291e3..e177f73c94e 100644
--- a/src/command_modules/azure-cli-storage/azure/cli/command_modules/storage/_help.py
+++ b/src/command_modules/azure-cli-storage/azure/cli/command_modules/storage/_help.py
@@ -5,7 +5,7 @@
from azure.cli.core.help_files import helps #pylint: disable=unused-import
-#pylint: disable=line-too-long
+#pylint: disable=line-too-long, too-many-lines
helps['storage entity insert'] = """
type: command
@@ -29,119 +29,244 @@
type: group
short-summary: Durable, highly available, and massively scalable cloud storage
"""
+
helps['storage account'] = """
type: group
- short-summary: Commands to manage your Storage accounts
+ short-summary: Manage storage accounts.
"""
+
helps['storage account keys'] = """
type: group
- short-summary: Commands to manage your Storage account keys
+ short-summary: Manage storage account keys.
"""
+
helps['storage blob'] = """
type: group
short-summary: Object storage for unstructured data
"""
+
+helps['storage blob exists'] = """
+ type: command
+ short-summary: Returns a boolean indicating whether the blob exists.
+"""
+
+helps['storage blob list'] = """
+ type: command
+ short-summary: List blobs in a given container.
+"""
+
helps['storage blob copy'] = """
type: group
- short-summary: Commands to manage your blob copy operations
+ short-summary: Manage blob copy operations.
"""
+
helps['storage blob lease'] = """
type: group
- short-summary: Commands to manage leases of your storage blob
+ short-summary: Manage storage blob leases.
"""
+
helps['storage blob metadata'] = """
type: group
- short-summary: Commands to manage your blob metadata
+ short-summary: Manage blob metadata.
"""
+
helps['storage blob service-properties'] = """
type: group
- short-summary: Commands to view Storage blob service properties
+ short-summary: Manage storage blob service properties.
"""
+
helps['storage container'] = """
type: group
- short-summary: Commands to manage your storage containers
+ short-summary: Manage blob storage containers.
+"""
+
+helps['storage container exists'] = """
+ type: command
+ short-summary: Returns a boolean indicating whether the container exists.
"""
+
+helps['storage container list'] = """
+ type: command
+ short-summary: List containers in a storage account.
+"""
+
helps['storage container lease'] = """
type: group
- short-summary: Commands to manage leases of your storage containers
+ short-summary: Manage blob storage container leases.
"""
+
helps['storage container metadata'] = """
type: group
- short-summary: Commands to manage your storage container metadata
+ short-summary: Manage container metadata.
"""
+
helps['storage container policy'] = """
type: group
- short-summary: Commands to manage stored access policies of your storage container
+ short-summary: Manage container stored access policies.
"""
+
helps['storage cors'] = """
type: group
- short-summary: Commands to manage your Storage Cross-Orgin Resource Sharing (CORS)
+ short-summary: Manage Storage service Cross-Orgin Resource Sharing (CORS)
+"""
+
+helps['storage cors add'] = """
+ type: command
+ short-summary: Add a CORS rule to a storage account.
+"""
+
+helps['storage cors clear'] = """
+ type: command
+ short-summary: Remove all CORS rules from a storage account.
+"""
+
+helps['storage cors list'] = """
+ type: command
+ short-summary: List all CORS rules for a storage account.
"""
+
helps['storage directory'] = """
type: group
- short-summary: Commands to manage your Storage file directory
+ short-summary: Manage file storage directories.
+"""
+
+helps['storage directory exists'] = """
+ type: command
+ short-summary: Returns a boolean indicating whether the directory exists.
"""
+
helps['storage directory metadata'] = """
type: group
- short-summary: Commands to manage your Storage file directory metadata
+ short-summary: Manage file storage directory metadata.
"""
+
helps['storage entity'] = """
type: group
- short-summary: Commands to manage Storage table entities
+ short-summary: Manage table storage entities.
"""
+
+helps['storage entity query'] = """
+ type: command
+ short-summary: List entities which satisfy a given query.
+"""
+
+
helps['storage file'] = """
type: group
- short-summary: File shares that use the standard SMB 3.0 protocal
+ short-summary: File shares that use the standard SMB 3.0 protocol
"""
+
+helps['storage file exists'] = """
+ type: command
+ short-summary: Returns a boolean indicating whether the file exists.
+"""
+
+helps['storage file list'] = """
+ type: command
+ short-summary: List files and directories in the specified share.
+"""
+
helps['storage file copy'] = """
type: group
- short-summary: Commands to manage your file copy operations
+ short-summary: Manage file copy operations.
"""
+
helps['storage file metadata'] = """
type: group
- short-summary: Commands to manage your file metadata
+ short-summary: Manage file metadata.
"""
+
helps['storage logging'] = """
type: group
- short-summary: Commands to view Storage logging information
+ short-summary: Manage Storage service logging information.
+"""
+
+helps['storage logging show'] = """
+ type: command
+ short-summary: Show logging settings for a storage account.
+"""
+
+helps['storage logging update'] = """
+ type: command
+ short-summary: Update logging settings for a storage account.
"""
+
helps['storage message'] = """
type: group
- short-summary: Commands to manage Storage queue messages
+ short-summary: Manage queue storage messages.
"""
+
helps['storage metrics'] = """
type: group
- short-summary: Commands to manage your Storage metrics properties
+ short-summary: Manage Storage service metrics.
"""
+
+helps['storage metrics show'] = """
+ type: command
+ short-summary: Show metrics settings for a storage account.
+"""
+
+helps['storage metrics update'] = """
+ type: command
+ short-summary: Update metrics settings for a storage account.
+"""
+
helps['storage queue'] = """
type: group
- short-summary: Effectively scale apps according to traffic using queues
+ short-summary: Effectively scale apps according to traffic using queues.
+"""
+
+helps['storage queue list'] = """
+ type: command
+ short-summary: List queues in a storage account.
"""
+
helps['storage queue metadata'] = """
type: group
- short-summary: Commands to manage your queue metadata
+ short-summary: Manage storage queue metadata.
"""
+
helps['storage queue policy'] = """
type: group
- short-summary: Commands to manage shared access policies of your storage queue
+ short-summary: Manage storage queue shared access policies.
"""
+
helps['storage share'] = """
type: group
- short-summary: Commands to manage Storage file shares
+ short-summary: Manage file shares.
+"""
+
+helps['storage share exists'] = """
+ type: command
+ short-summary: Returns a boolean indicating whether the share exists.
"""
+
+helps['storage share list'] = """
+ type: command
+ short-summary: List file shares in a storage account.
+"""
+
helps['storage share metadata'] = """
type: group
- short-summary: Commands to manage file share metadata
+ short-summary: Manage file share metadata.
"""
+
helps['storage share policy'] = """
type: group
- short-summary: Commands to manage stored access policies of your Storage file share
+ short-summary: Manage storage file share shared access policies.
"""
+
helps['storage table'] = """
type: group
- short-summary: NoSQL key-value storage using semi-structured datasets
+ short-summary: NoSQL key-value storage using semi-structured datasets.
"""
+
+helps['storage table list'] = """
+ type: command
+ short-summary: List tables in a storage account.
+"""
+
helps['storage table policy'] = """
type: group
- short-summary: Commands to manage stored access policies of your Storage table
+ short-summary: Manage storage table shared access policies.
"""
diff --git a/src/command_modules/azure-cli-storage/azure/cli/command_modules/storage/_validators.py b/src/command_modules/azure-cli-storage/azure/cli/command_modules/storage/_validators.py
index 22e670c324e..91d705131a8 100644
--- a/src/command_modules/azure-cli-storage/azure/cli/command_modules/storage/_validators.py
+++ b/src/command_modules/azure-cli-storage/azure/cli/command_modules/storage/_validators.py
@@ -437,26 +437,6 @@ def transform_entity_query_output(result):
new_results.append(new_entry)
return new_results
-def transform_file_list_output(result):
- """ Transform to convert SDK file/dir list output to something that
- more clearly distinguishes between files and directories. """
- new_result = []
- for item in list(result):
- new_entry = OrderedDict()
- item_name = item['name']
- try:
- _ = item['properties']['contentLength']
- is_dir = False
- except KeyError:
- item_name = '{}/'.format(item_name)
- is_dir = True
- new_entry['Name'] = item_name
- new_entry['Type'] = 'dir' if is_dir else 'file'
- new_entry['ContentLength'] = '' if is_dir else item['properties']['contentLength']
- new_entry['LastModified'] = item['properties']['lastModified']
- new_result.append(new_entry)
- return sorted(new_result, key=lambda k: k['Name'])
-
def transform_logging_list_output(result):
new_result = []
for key in sorted(result.keys()):
diff --git a/src/command_modules/azure-cli-storage/azure/cli/command_modules/storage/commands.py b/src/command_modules/azure-cli-storage/azure/cli/command_modules/storage/commands.py
index a4ff737797a..875e66da1d3 100644
--- a/src/command_modules/azure-cli-storage/azure/cli/command_modules/storage/commands.py
+++ b/src/command_modules/azure-cli-storage/azure/cli/command_modules/storage/commands.py
@@ -12,9 +12,17 @@
table_data_service_factory, queue_data_service_factory, cloud_storage_account_service_factory)
from azure.cli.command_modules.storage._validators import \
(transform_acl_list_output, transform_cors_list_output, transform_entity_query_output,
- transform_file_list_output, transform_logging_list_output, transform_metrics_list_output,
+ transform_logging_list_output, transform_metrics_list_output,
transform_url, transform_storage_list_output, transform_storage_exists_output,
transform_storage_boolean_output, transform_container_permission_output)
+from azure.cli.command_modules.storage._format import \
+ (transform_container_list, transform_container_show,
+ transform_blob_output,
+ transform_share_list,
+ transform_file_output,
+ transform_entity_show,
+ transform_message_show,
+ transform_boolean_for_table)
# storage account commands
factory = lambda kwargs: storage_client_factory().storage_accounts
@@ -32,10 +40,10 @@
# container commands
factory = blob_data_service_factory
-cli_storage_data_plane_command('storage container list', 'azure.storage.blob.blockblobservice#BlockBlobService.list_containers', factory, transform=transform_storage_list_output)
-cli_storage_data_plane_command('storage container delete', 'azure.storage.blob.blockblobservice#BlockBlobService.delete_container', factory, transform=transform_storage_boolean_output)
-cli_storage_data_plane_command('storage container show', 'azure.storage.blob.blockblobservice#BlockBlobService.get_container_properties', factory)
-cli_storage_data_plane_command('storage container create', 'azure.storage.blob.blockblobservice#BlockBlobService.create_container', factory, transform=transform_storage_boolean_output)
+cli_storage_data_plane_command('storage container list', 'azure.storage.blob.blockblobservice#BlockBlobService.list_containers', factory, transform=transform_storage_list_output, table_transformer=transform_container_list)
+cli_storage_data_plane_command('storage container delete', 'azure.storage.blob.blockblobservice#BlockBlobService.delete_container', factory, transform=transform_storage_boolean_output, table_transformer=transform_boolean_for_table)
+cli_storage_data_plane_command('storage container show', 'azure.storage.blob.blockblobservice#BlockBlobService.get_container_properties', factory, table_transformer=transform_container_show)
+cli_storage_data_plane_command('storage container create', 'azure.storage.blob.blockblobservice#BlockBlobService.create_container', factory, transform=transform_storage_boolean_output, table_transformer=transform_boolean_for_table)
cli_storage_data_plane_command('storage container generate-sas', 'azure.storage.blob.blockblobservice#BlockBlobService.generate_container_shared_access_signature', factory)
cli_storage_data_plane_command('storage container metadata update', 'azure.storage.blob.blockblobservice#BlockBlobService.set_container_metadata', factory)
cli_storage_data_plane_command('storage container metadata show', 'azure.storage.blob.blockblobservice#BlockBlobService.get_container_metadata', factory)
@@ -44,7 +52,7 @@
cli_storage_data_plane_command('storage container lease release', 'azure.storage.blob.blockblobservice#BlockBlobService.release_container_lease', factory)
cli_storage_data_plane_command('storage container lease change', 'azure.storage.blob.blockblobservice#BlockBlobService.change_container_lease', factory)
cli_storage_data_plane_command('storage container lease break', 'azure.storage.blob.blockblobservice#BlockBlobService.break_container_lease', factory)
-cli_storage_data_plane_command('storage container exists', 'azure.storage.blob.baseblobservice#BaseBlobService.exists', factory, transform=transform_storage_exists_output)
+cli_storage_data_plane_command('storage container exists', 'azure.storage.blob.baseblobservice#BaseBlobService.exists', factory, transform=transform_storage_exists_output, table_transformer=transform_boolean_for_table)
cli_storage_data_plane_command('storage container set-permission', 'azure.storage.blob.baseblobservice#BaseBlobService.set_container_acl', factory)
cli_storage_data_plane_command('storage container show-permission', 'azure.storage.blob.baseblobservice#BaseBlobService.get_container_acl', factory, transform=transform_container_permission_output)
cli_storage_data_plane_command('storage container policy create', 'azure.cli.command_modules.storage.custom#create_acl_policy', factory)
@@ -54,12 +62,12 @@
cli_storage_data_plane_command('storage container policy update', 'azure.cli.command_modules.storage.custom#set_acl_policy', factory)
# blob commands
-cli_storage_data_plane_command('storage blob list', 'azure.storage.blob.blockblobservice#BlockBlobService.list_blobs', factory, transform=transform_storage_list_output)
-cli_storage_data_plane_command('storage blob delete', 'azure.storage.blob.blockblobservice#BlockBlobService.delete_blob', factory, transform=transform_storage_boolean_output)
+cli_storage_data_plane_command('storage blob list', 'azure.storage.blob.blockblobservice#BlockBlobService.list_blobs', factory, transform=transform_storage_list_output, table_transformer=transform_blob_output)
+cli_storage_data_plane_command('storage blob delete', 'azure.storage.blob.blockblobservice#BlockBlobService.delete_blob', factory, transform=transform_storage_boolean_output, table_transformer=transform_boolean_for_table)
cli_storage_data_plane_command('storage blob generate-sas', 'azure.storage.blob.blockblobservice#BlockBlobService.generate_blob_shared_access_signature', factory)
cli_storage_data_plane_command('storage blob url', 'azure.storage.blob.blockblobservice#BlockBlobService.make_blob_url', factory, transform=transform_url)
cli_storage_data_plane_command('storage blob snapshot', 'azure.storage.blob.blockblobservice#BlockBlobService.snapshot_blob', factory)
-cli_storage_data_plane_command('storage blob show', 'azure.storage.blob.blockblobservice#BlockBlobService.get_blob_properties', factory)
+cli_storage_data_plane_command('storage blob show', 'azure.storage.blob.blockblobservice#BlockBlobService.get_blob_properties', factory, table_transformer=transform_blob_output)
cli_storage_data_plane_command('storage blob update', 'azure.storage.blob.blockblobservice#BlockBlobService.set_blob_properties', factory)
cli_storage_data_plane_command('storage blob exists', 'azure.storage.blob.baseblobservice#BaseBlobService.exists', factory, transform=transform_storage_exists_output)
cli_storage_data_plane_command('storage blob download', 'azure.storage.blob.baseblobservice#BaseBlobService.get_blob_to_path', factory)
@@ -77,9 +85,9 @@
# share commands
factory = file_data_service_factory
-cli_storage_data_plane_command('storage share list', 'azure.storage.file.fileservice#FileService.list_shares', factory, transform=transform_storage_list_output)
-cli_storage_data_plane_command('storage share create', 'azure.storage.file.fileservice#FileService.create_share', factory, transform=transform_storage_boolean_output)
-cli_storage_data_plane_command('storage share delete', 'azure.storage.file.fileservice#FileService.delete_share', factory, transform=transform_storage_boolean_output)
+cli_storage_data_plane_command('storage share list', 'azure.storage.file.fileservice#FileService.list_shares', factory, transform=transform_storage_list_output, table_transformer=transform_share_list)
+cli_storage_data_plane_command('storage share create', 'azure.storage.file.fileservice#FileService.create_share', factory, transform=transform_storage_boolean_output, table_transformer=transform_boolean_for_table)
+cli_storage_data_plane_command('storage share delete', 'azure.storage.file.fileservice#FileService.delete_share', factory, transform=transform_storage_boolean_output, table_transformer=transform_boolean_for_table)
cli_storage_data_plane_command('storage share generate-sas', 'azure.storage.file.fileservice#FileService.generate_share_shared_access_signature', factory)
cli_storage_data_plane_command('storage share stats', 'azure.storage.file.fileservice#FileService.get_share_stats', factory)
cli_storage_data_plane_command('storage share show', 'azure.storage.file.fileservice#FileService.get_share_properties', factory)
@@ -94,20 +102,20 @@
cli_storage_data_plane_command('storage share policy update', 'azure.cli.command_modules.storage.custom#set_acl_policy', factory)
# directory commands
-cli_storage_data_plane_command('storage directory create', 'azure.storage.file.fileservice#FileService.create_directory', factory, transform=transform_storage_boolean_output)
-cli_storage_data_plane_command('storage directory delete', 'azure.storage.file.fileservice#FileService.delete_directory', factory, transform=transform_storage_boolean_output)
-cli_storage_data_plane_command('storage directory show', 'azure.storage.file.fileservice#FileService.get_directory_properties', factory)
+cli_storage_data_plane_command('storage directory create', 'azure.storage.file.fileservice#FileService.create_directory', factory, transform=transform_storage_boolean_output, table_transformer=transform_boolean_for_table)
+cli_storage_data_plane_command('storage directory delete', 'azure.storage.file.fileservice#FileService.delete_directory', factory, transform=transform_storage_boolean_output, table_transformer=transform_boolean_for_table)
+cli_storage_data_plane_command('storage directory show', 'azure.storage.file.fileservice#FileService.get_directory_properties', factory, table_transformer=transform_file_output)
cli_storage_data_plane_command('storage directory exists', 'azure.storage.file.fileservice#FileService.exists', factory, transform=transform_storage_exists_output)
cli_storage_data_plane_command('storage directory metadata show', 'azure.storage.file.fileservice#FileService.get_directory_metadata', factory)
cli_storage_data_plane_command('storage directory metadata update', 'azure.storage.file.fileservice#FileService.set_directory_metadata', factory)
# file commands
-cli_storage_data_plane_command('storage file list', 'azure.storage.file.fileservice#FileService.list_directories_and_files', factory, table_transformer=transform_file_list_output)
-cli_storage_data_plane_command('storage file delete', 'azure.storage.file.fileservice#FileService.delete_file', factory, transform=transform_storage_boolean_output)
+cli_storage_data_plane_command('storage file list', 'azure.storage.file.fileservice#FileService.list_directories_and_files', factory, table_transformer=transform_file_output)
+cli_storage_data_plane_command('storage file delete', 'azure.storage.file.fileservice#FileService.delete_file', factory, transform=transform_storage_boolean_output, table_transformer=transform_boolean_for_table)
cli_storage_data_plane_command('storage file resize', 'azure.storage.file.fileservice#FileService.resize_file', factory)
cli_storage_data_plane_command('storage file url', 'azure.storage.file.fileservice#FileService.make_file_url', factory, transform=transform_url)
cli_storage_data_plane_command('storage file generate-sas', 'azure.storage.file.fileservice#FileService.generate_file_shared_access_signature', factory)
-cli_storage_data_plane_command('storage file show', 'azure.storage.file.fileservice#FileService.get_file_properties', factory)
+cli_storage_data_plane_command('storage file show', 'azure.storage.file.fileservice#FileService.get_file_properties', factory, table_transformer=transform_file_output)
cli_storage_data_plane_command('storage file update', 'azure.storage.file.fileservice#FileService.set_file_properties', factory)
cli_storage_data_plane_command('storage file exists', 'azure.storage.file.fileservice#FileService.exists', factory, transform=transform_storage_exists_output)
cli_storage_data_plane_command('storage file download', 'azure.storage.file.fileservice#FileService.get_file_to_path', factory)
@@ -122,9 +130,9 @@
cli_storage_data_plane_command('storage table generate-sas', 'azure.storage.table.tableservice#TableService.generate_table_shared_access_signature', factory)
cli_storage_data_plane_command('storage table stats', 'azure.storage.table.tableservice#TableService.get_table_service_stats', factory)
cli_storage_data_plane_command('storage table list', 'azure.storage.table.tableservice#TableService.list_tables', factory, transform=transform_storage_list_output)
-cli_storage_data_plane_command('storage table create', 'azure.storage.table.tableservice#TableService.create_table', factory, transform=transform_storage_boolean_output)
+cli_storage_data_plane_command('storage table create', 'azure.storage.table.tableservice#TableService.create_table', factory, transform=transform_storage_boolean_output, table_transformer=transform_boolean_for_table)
cli_storage_data_plane_command('storage table exists', 'azure.storage.table.tableservice#TableService.exists', factory, transform=transform_storage_exists_output)
-cli_storage_data_plane_command('storage table delete', 'azure.storage.table.tableservice#TableService.delete_table', factory, transform=transform_storage_boolean_output)
+cli_storage_data_plane_command('storage table delete', 'azure.storage.table.tableservice#TableService.delete_table', factory, transform=transform_storage_boolean_output, table_transformer=transform_boolean_for_table)
cli_storage_data_plane_command('storage table policy create', 'azure.cli.command_modules.storage.custom#create_acl_policy', factory)
cli_storage_data_plane_command('storage table policy delete', 'azure.cli.command_modules.storage.custom#delete_acl_policy', factory)
cli_storage_data_plane_command('storage table policy show', 'azure.cli.command_modules.storage.custom#get_acl_policy', factory)
@@ -133,19 +141,19 @@
# table entity commands
cli_storage_data_plane_command('storage entity query', 'azure.storage.table.tableservice#TableService.query_entities', factory, table_transformer=transform_entity_query_output)
-cli_storage_data_plane_command('storage entity show', 'azure.storage.table.tableservice#TableService.get_entity', factory)
+cli_storage_data_plane_command('storage entity show', 'azure.storage.table.tableservice#TableService.get_entity', factory, table_transformer=transform_entity_show)
cli_storage_data_plane_command('storage entity insert', 'azure.cli.command_modules.storage.custom#insert_table_entity', factory)
cli_storage_data_plane_command('storage entity replace', 'azure.storage.table.tableservice#TableService.update_entity', factory)
cli_storage_data_plane_command('storage entity merge', 'azure.storage.table.tableservice#TableService.merge_entity', factory)
-cli_storage_data_plane_command('storage entity delete', 'azure.storage.table.tableservice#TableService.delete_entity', factory, transform=transform_storage_boolean_output)
+cli_storage_data_plane_command('storage entity delete', 'azure.storage.table.tableservice#TableService.delete_entity', factory, transform=transform_storage_boolean_output, table_transformer=transform_boolean_for_table)
# queue commands
factory = queue_data_service_factory
cli_storage_data_plane_command('storage queue generate-sas', 'azure.storage.queue.queueservice#QueueService.generate_queue_shared_access_signature', factory)
cli_storage_data_plane_command('storage queue stats', 'azure.storage.queue.queueservice#QueueService.get_queue_service_stats', factory)
cli_storage_data_plane_command('storage queue list', 'azure.storage.queue.queueservice#QueueService.list_queues', factory, transform=transform_storage_list_output)
-cli_storage_data_plane_command('storage queue create', 'azure.storage.queue.queueservice#QueueService.create_queue', factory, transform=transform_storage_boolean_output)
-cli_storage_data_plane_command('storage queue delete', 'azure.storage.queue.queueservice#QueueService.delete_queue', factory, transform=transform_storage_boolean_output)
+cli_storage_data_plane_command('storage queue create', 'azure.storage.queue.queueservice#QueueService.create_queue', factory, transform=transform_storage_boolean_output, table_transformer=transform_boolean_for_table)
+cli_storage_data_plane_command('storage queue delete', 'azure.storage.queue.queueservice#QueueService.delete_queue', factory, transform=transform_storage_boolean_output, table_transformer=transform_boolean_for_table)
cli_storage_data_plane_command('storage queue metadata show', 'azure.storage.queue.queueservice#QueueService.get_queue_metadata', factory)
cli_storage_data_plane_command('storage queue metadata update', 'azure.storage.queue.queueservice#QueueService.set_queue_metadata', factory)
cli_storage_data_plane_command('storage queue exists', 'azure.storage.queue.queueservice#QueueService.exists', factory, transform=transform_storage_exists_output)
@@ -157,9 +165,9 @@
# queue message commands
cli_storage_data_plane_command('storage message put', 'azure.storage.queue.queueservice#QueueService.put_message', factory)
-cli_storage_data_plane_command('storage message get', 'azure.storage.queue.queueservice#QueueService.get_messages', factory)
-cli_storage_data_plane_command('storage message peek', 'azure.storage.queue.queueservice#QueueService.peek_messages', factory)
-cli_storage_data_plane_command('storage message delete', 'azure.storage.queue.queueservice#QueueService.delete_message', factory, transform=transform_storage_boolean_output)
+cli_storage_data_plane_command('storage message get', 'azure.storage.queue.queueservice#QueueService.get_messages', factory, table_transformer=transform_message_show)
+cli_storage_data_plane_command('storage message peek', 'azure.storage.queue.queueservice#QueueService.peek_messages', factory, table_transformer=transform_message_show)
+cli_storage_data_plane_command('storage message delete', 'azure.storage.queue.queueservice#QueueService.delete_message', factory, transform=transform_storage_boolean_output, table_transformer=transform_boolean_for_table)
cli_storage_data_plane_command('storage message clear', 'azure.storage.queue.queueservice#QueueService.clear_messages', factory)
cli_storage_data_plane_command('storage message update', 'azure.storage.queue.queueservice#QueueService.update_message', factory)