|
5 | 5 |
|
6 | 6 | """Assist the command module to get correct type from SDK based on current API version""" |
7 | 7 |
|
8 | | -from azure.cli.core.profiles import get_sdk, supported_api_version, ResourceType |
9 | | -from azure.cli.core.profiles._shared import APIVersionException |
| 8 | +from azure.cli.core.profiles import get_sdk |
| 9 | +from .profiles import CUSTOM_DATA_STORAGE_BLOB |
10 | 10 |
|
11 | 11 |
|
12 | | -def cosmosdb_table_exists(cli_ctx): |
13 | | - try: |
14 | | - return supported_api_version(cli_ctx, ResourceType.DATA_COSMOS_TABLE, min_api='2017-04-17') |
15 | | - except APIVersionException: |
16 | | - return False |
17 | | - |
18 | | - |
19 | | -def get_table_data_type(cli_ctx, module_name, *type_names): |
20 | | - if cosmosdb_table_exists(cli_ctx): |
21 | | - return get_sdk(cli_ctx, ResourceType.DATA_COSMOS_TABLE, *type_names, mod=module_name) |
22 | | - |
23 | | - return get_sdk(cli_ctx, ResourceType.DATA_STORAGE, *type_names, mod=module_name) |
24 | | - |
25 | | - |
26 | | -def get_blob_service_by_type(cli_ctx, blob_type): |
27 | | - type_to_service = { |
28 | | - 'block': lambda ctx: get_sdk(ctx, ResourceType.DATA_STORAGE, 'BlockBlobService', mod='blob'), |
29 | | - 'page': lambda ctx: get_sdk(ctx, ResourceType.DATA_STORAGE, 'PageBlobService', mod='blob'), |
30 | | - 'append': lambda ctx: get_sdk(ctx, ResourceType.DATA_STORAGE, 'AppendBlobService', mod='blob') |
31 | | - } |
32 | | - |
33 | | - try: |
34 | | - return type_to_service[blob_type](cli_ctx) |
35 | | - except KeyError: |
36 | | - return None |
37 | | - |
38 | | - |
39 | | -def get_blob_types(): |
40 | | - return 'block', 'page', 'append' |
41 | | - |
42 | | - |
43 | | -def get_blob_tier_names(cli_ctx, model, **kwargs): |
44 | | - t_blob_tier_model = get_sdk(cli_ctx, attr_args=model, **kwargs) |
| 12 | +def get_blob_tier_names_track2(cli_ctx, model_path): |
| 13 | + t_blob_tier_model = get_sdk(cli_ctx, CUSTOM_DATA_STORAGE_BLOB, model_path) |
45 | 14 | return [v for v in dir(t_blob_tier_model) if not v.startswith('_')] |
46 | | - |
47 | | - |
48 | | -def get_delete_blob_snapshot_type_names(): |
49 | | - return 'include', 'only' |
50 | | - |
51 | | - |
52 | | -def get_delete_blob_snapshot_type(cli_ctx, name): |
53 | | - t_delete_snapshot = get_sdk(cli_ctx, ResourceType.DATA_STORAGE, 'DeleteSnapshot', mod='blob') |
54 | | - return {'include': t_delete_snapshot.Include, 'only': t_delete_snapshot.Only}[name] |
55 | | - |
56 | | - |
57 | | -def get_delete_file_snapshot_type_names(): |
58 | | - return ['include'] |
59 | | - |
60 | | - |
61 | | -def get_delete_file_snapshot_type(cli_ctx, name): |
62 | | - t_delete_snapshot = get_sdk(cli_ctx, ResourceType.DATA_STORAGE, 'DeleteSnapshot', mod='file.models') |
63 | | - return {'include': t_delete_snapshot.Include}[name] |
64 | | - |
65 | | - |
66 | | -def get_container_access_type_names(): |
67 | | - return 'off', 'blob', 'container' |
68 | | - |
69 | | - |
70 | | -def get_container_access_type(cli_ctx, name): |
71 | | - if name == 'off': |
72 | | - return None |
73 | | - if name == 'blob': |
74 | | - return get_sdk(cli_ctx, ResourceType.DATA_STORAGE, 'PublicAccess', mod='blob.models').Blob |
75 | | - if name == 'container': |
76 | | - return get_sdk(cli_ctx, ResourceType.DATA_STORAGE, 'PublicAccess', mod='blob.models').Container |
77 | | - raise KeyError |
78 | | - |
79 | | - |
80 | | -def get_fs_access_type_names(): |
81 | | - return 'off', 'file', 'filesystem' |
82 | | - |
83 | | - |
84 | | -def get_fs_access_type(cli_ctx, name): |
85 | | - if name == 'off': |
86 | | - return None |
87 | | - if name == 'file': |
88 | | - return get_sdk(cli_ctx, ResourceType.DATA_STORAGE_FILEDATALAKE, 'PublicAccess', mod='_models').File |
89 | | - if name == 'filesystem': |
90 | | - return get_sdk(cli_ctx, ResourceType.DATA_STORAGE_FILEDATALAKE, 'PublicAccess', mod='_models').FileSystem |
91 | | - raise KeyError |
0 commit comments