Skip to content

Commit bfd2ba6

Browse files
authored
[HPC-CACHE] Migrate to track2 (#3351)
1 parent 394d08d commit bfd2ba6

31 files changed

+8210
-4267
lines changed

src/hpc-cache/HISTORY.rst

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

6+
0.1.5
7+
++++++
8+
* Migrate to track2 SDK
9+
610
0.1.4
711
++++++
812
* Fix #2695: Improve the help description of parameter `--nfs3-usage-model`.

src/hpc-cache/azext_hpc_cache/custom.py

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def create_hpc_cache(client,
3333
body['cache_size_gb'] = cache_size_gb # number
3434
body['subnet'] = subnet # str
3535
body.setdefault('sku', {})['name'] = sku_name # str
36-
return sdk_no_wait(no_wait, client.create_or_update, resource_group_name=resource_group_name, cache_name=name,
36+
return sdk_no_wait(no_wait, client.begin_create_or_update, resource_group_name=resource_group_name, cache_name=name,
3737
cache=body)
3838

3939

@@ -48,15 +48,14 @@ def update_hpc_cache(client,
4848
body = {}
4949
if tags is not None:
5050
body['tags'] = tags # unknown-primary[object]
51-
client.config.generate_client_request_id = True
5251
return client.update(resource_group_name=resource_group_name, cache_name=name, cache=body)
5352

5453

5554
def delete_hpc_cache(client,
5655
resource_group_name,
5756
name,
5857
no_wait=False):
59-
return sdk_no_wait(no_wait, client.delete, resource_group_name=resource_group_name, cache_name=name)
58+
return sdk_no_wait(no_wait, client.begin_delete, resource_group_name=resource_group_name, cache_name=name)
6059

6160

6261
def get_hpc_cache(client,
@@ -75,27 +74,27 @@ def list_hpc_cache(client,
7574
def flush_hpc_cache(client,
7675
resource_group_name,
7776
name):
78-
return client.flush(resource_group_name=resource_group_name, cache_name=name)
77+
return client.begin_flush(resource_group_name=resource_group_name, cache_name=name)
7978

8079

8180
def upgrade_firmware_hpc_cache(client,
8281
resource_group_name,
8382
name):
84-
return client.upgrade_firmware(resource_group_name=resource_group_name, cache_name=name)
83+
return client.begin_upgrade_firmware(resource_group_name=resource_group_name, cache_name=name)
8584

8685

8786
def start_hpc_cache(client,
8887
resource_group_name,
8988
name,
9089
no_wait=False):
91-
return sdk_no_wait(no_wait, client.start, resource_group_name=resource_group_name, cache_name=name)
90+
return sdk_no_wait(no_wait, client.begin_start, resource_group_name=resource_group_name, cache_name=name)
9291

9392

9493
def stop_hpc_cache(client,
9594
resource_group_name,
9695
name,
9796
no_wait=False):
98-
return sdk_no_wait(no_wait, client.stop, resource_group_name=resource_group_name, cache_name=name)
97+
return sdk_no_wait(no_wait, client.begin_stop, resource_group_name=resource_group_name, cache_name=name)
9998

10099

101100
def create_hpc_cache_blob_storage_target(client,
@@ -108,8 +107,8 @@ def create_hpc_cache_blob_storage_target(client,
108107
body['junctions'] = [{'namespacePath': virtual_namespace_path, 'targetPath': '/'}]
109108
body['target_type'] = 'clfs' # str
110109
body.setdefault('clfs', {})['target'] = clfs_target # str
111-
return client.create_or_update(resource_group_name=resource_group_name, cache_name=cache_name,
112-
storage_target_name=name, storagetarget=body)
110+
return client.begin_create_or_update(resource_group_name=resource_group_name, cache_name=cache_name,
111+
storage_target_name=name, storagetarget=body)
113112

114113

115114
def create_hpc_cache_nfs_storage_target(client,
@@ -124,8 +123,8 @@ def create_hpc_cache_nfs_storage_target(client,
124123
body['target_type'] = 'nfs3' # str
125124
body.setdefault('nfs3', {})['target'] = nfs3_target # str
126125
body.setdefault('nfs3', {})['usage_model'] = nfs3_usage_model # str
127-
return client.create_or_update(resource_group_name=resource_group_name, cache_name=cache_name,
128-
storage_target_name=name, storagetarget=body)
126+
return client.begin_create_or_update(resource_group_name=resource_group_name, cache_name=cache_name,
127+
storage_target_name=name, storagetarget=body)
129128

130129

131130
def update_hpc_cache_blob_storage_target(client,
@@ -140,8 +139,8 @@ def update_hpc_cache_blob_storage_target(client,
140139
body['junctions'] = [{'namespacePath': virtual_namespace_path, 'targetPath': '/'}]
141140
if clfs_target is not None:
142141
body.setdefault('clfs', {})['target'] = clfs_target # str
143-
return client.create_or_update(resource_group_name=resource_group_name, cache_name=cache_name,
144-
storage_target_name=name, storagetarget=body)
142+
return client.begin_create_or_update(resource_group_name=resource_group_name, cache_name=cache_name,
143+
storage_target_name=name, storagetarget=body)
145144

146145

147146
def update_hpc_cache_nfs_storage_target(client,
@@ -156,15 +155,15 @@ def update_hpc_cache_nfs_storage_target(client,
156155
body['target_type'] = 'nfs3' # str
157156
body.setdefault('nfs3', {})['target'] = nfs3_target # str
158157
body.setdefault('nfs3', {})['usage_model'] = nfs3_usage_model # str
159-
return client.create_or_update(resource_group_name=resource_group_name, cache_name=cache_name,
160-
storage_target_name=name, storagetarget=body)
158+
return client.begin_create_or_update(resource_group_name=resource_group_name, cache_name=cache_name,
159+
storage_target_name=name, storagetarget=body)
161160

162161

163162
def delete_hpc_cache_storage_target(client,
164163
resource_group_name,
165164
cache_name,
166165
name):
167-
return client.delete(resource_group_name=resource_group_name, cache_name=cache_name, storage_target_name=name)
166+
return client.begin_delete(resource_group_name=resource_group_name, cache_name=cache_name, storage_target_name=name)
168167

169168

170169
def get_hpc_cache_storage_target(client,

src/hpc-cache/azext_hpc_cache/tests/latest/recordings/test_hpc_cache.yaml

Lines changed: 2399 additions & 1021 deletions
Large diffs are not rendered by default.

src/hpc-cache/azext_hpc_cache/tests/latest/recordings/test_hpc_storage_target.yaml

Lines changed: 11 additions & 11 deletions
Large diffs are not rendered by default.

src/hpc-cache/azext_hpc_cache/tests/latest/test_hpc_cache_scenario.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ def test_hpc_cache(self, resource_group):
2626
'storage_name': self.create_random_name(prefix='storagename', length=24),
2727
'container_name': self.create_random_name(prefix='containername', length=24)
2828
})
29+
principal_id = os.environ.get('AZURE_CLIENT_ID', '8a95323f-4a83-4a69-903f-7d2c69349c3c')
2930

3031
storage_id = self.cmd('az storage account create -n {storage_name} -g {rg} -l {loc} '
3132
'--sku Standard_LRS --https-only').get_output_in_json()['id']
@@ -34,8 +35,8 @@ def test_hpc_cache(self, resource_group):
3435
self.cmd('az storage container create -n {container_name} --account-name {storage_name}')
3536

3637
with mock.patch('azure.cli.command_modules.role.custom._gen_guid', side_effect=self.create_guid):
37-
self.cmd('az role assignment create --assignee 677a61e9-086e-4f13-986a-11aaedc31416 '
38-
'--role "Storage Account Contributor" --scope {}'.format(storage_id))
38+
self.cmd('az role assignment create --assignee {} '
39+
'--role "Storage Account Contributor" --scope {}'.format(principal_id, storage_id))
3940

4041
vnet_id = self.cmd('az network vnet create -g {rg} -n {vnet_name} -l {loc} --address-prefix 10.7.0.0/16 '
4142
'--subnet-name default --subnet-prefix 10.7.0.0/24').get_output_in_json()['newVNet']['id']
@@ -56,8 +57,8 @@ def test_hpc_cache(self, resource_group):
5657

5758
self.cmd('az hpc-cache upgrade-firmware --resource-group {rg} --name {cache_name}', checks=[])
5859

59-
from msrestazure.azure_exceptions import CloudError
60-
with self.assertRaisesRegexp(CloudError, 'ResourceNotFound'):
60+
from azure.core.exceptions import ResourceNotFoundError
61+
with self.assertRaisesRegexp(ResourceNotFoundError, 'ResourceNotFound'):
6162
self.cmd('az hpc-cache update '
6263
'--resource-group {rg} '
6364
'--name "{cache_name}123" '
@@ -89,13 +90,13 @@ def test_hpc_cache(self, resource_group):
8990
checks=[self.check("length(@) != '0'", True)])
9091

9192
self.cmd('az hpc-cache flush --resource-group {rg} --name {cache_name}',
92-
checks=[self.check('status', 'Succeeded')])
93+
checks=[self.check('@', 'success')])
9394

9495
self.cmd('az hpc-cache stop --resource-group {rg} --name {cache_name}',
95-
checks=[self.check('status', 'Succeeded')])
96+
checks=[self.check('@', 'success')])
9697

9798
self.cmd('az hpc-cache start --resource-group {rg} --name {cache_name}',
98-
checks=[self.check('status', 'Succeeded')])
99+
checks=[self.check('@', 'success')])
99100

100101
self.cmd('az hpc-cache delete --resource-group {rg} --name {cache_name}',
101102
checks=[self.check('status', 'Succeeded')])
@@ -115,6 +116,7 @@ def test_hpc_storage_target(self, resource_group):
115116
'container_name': self.create_random_name(prefix='containername', length=24),
116117
'blob_target_name': self.create_random_name(prefix='blobtarget', length=24)
117118
})
119+
principal_id = os.environ.get('AZURE_CLIENT_ID', '8a95323f-4a83-4a69-903f-7d2c69349c3c')
118120

119121
storage_id = self.cmd('az storage account create -n {storage_name} -g {rg} -l {loc} '
120122
'--sku Standard_LRS --https-only').get_output_in_json()['id']
@@ -123,8 +125,8 @@ def test_hpc_storage_target(self, resource_group):
123125
self.cmd('az storage container create -n {container_name} --account-name {storage_name}')
124126

125127
with mock.patch('azure.cli.command_modules.role.custom._gen_guid', side_effect=self.create_guid):
126-
self.cmd('az role assignment create --assignee 677a61e9-086e-4f13-986a-11aaedc31416 '
127-
'--role "Storage Account Contributor" --scope {}'.format(storage_id))
128+
self.cmd('az role assignment create --assignee {} '
129+
'--role "Storage Account Contributor" --scope {}'.format(principal_id, storage_id))
128130

129131
vnet_id = self.cmd('az network vnet create -g {rg} -n {vnet_name} -l {loc} --address-prefix 10.7.0.0/16 '
130132
'--subnet-name default --subnet-prefix 10.7.0.0/24').get_output_in_json()['newVNet']['id']
Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
# coding=utf-8
2-
# --------------------------------------------------------------------------
3-
# Copyright (c) Microsoft Corporation. All rights reserved.
4-
# Licensed under the MIT License. See License.txt in the project root for
5-
# license information.
6-
#
7-
# Code generated by Microsoft (R) AutoRest Code Generator.
8-
# Changes may cause incorrect behavior and will be lost if the code is
9-
# regenerated.
10-
# --------------------------------------------------------------------------
11-
12-
from ._configuration import StorageCacheManagementClientConfiguration
13-
from ._storage_cache_management_client import StorageCacheManagementClient
14-
__all__ = ['StorageCacheManagementClient', 'StorageCacheManagementClientConfiguration']
15-
16-
from .version import VERSION
17-
18-
__version__ = VERSION
19-
1+
# coding=utf-8
2+
# --------------------------------------------------------------------------
3+
# Copyright (c) Microsoft Corporation. All rights reserved.
4+
# Licensed under the MIT License. See License.txt in the project root for license information.
5+
# Code generated by Microsoft (R) AutoRest Code Generator.
6+
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
7+
# --------------------------------------------------------------------------
8+
9+
from ._storage_cache_management_client import StorageCacheManagementClient
10+
from ._version import VERSION
11+
12+
__version__ = VERSION
13+
__all__ = ['StorageCacheManagementClient']
14+
15+
try:
16+
from ._patch import patch_sdk # type: ignore
17+
patch_sdk()
18+
except ImportError:
19+
pass
Lines changed: 71 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,71 @@
1-
# coding=utf-8
2-
# --------------------------------------------------------------------------
3-
# Copyright (c) Microsoft Corporation. All rights reserved.
4-
# Licensed under the MIT License. See License.txt in the project root for
5-
# license information.
6-
#
7-
# Code generated by Microsoft (R) AutoRest Code Generator.
8-
# Changes may cause incorrect behavior and will be lost if the code is
9-
# regenerated.
10-
# --------------------------------------------------------------------------
11-
from msrestazure import AzureConfiguration
12-
13-
from .version import VERSION
14-
15-
16-
class StorageCacheManagementClientConfiguration(AzureConfiguration):
17-
"""Configuration for StorageCacheManagementClient
18-
Note that all parameters used to create this instance are saved as instance
19-
attributes.
20-
21-
:param credentials: Credentials needed for the client to connect to Azure.
22-
:type credentials: :mod:`A msrestazure Credentials
23-
object<msrestazure.azure_active_directory>`
24-
:param subscription_id: Subscription credentials which uniquely identify
25-
Microsoft Azure subscription. The subscription ID forms part of the URI
26-
for every service call.
27-
:type subscription_id: str
28-
:param str base_url: Service URL
29-
"""
30-
31-
def __init__(
32-
self, credentials, subscription_id, base_url=None):
33-
34-
if credentials is None:
35-
raise ValueError("Parameter 'credentials' must not be None.")
36-
if subscription_id is None:
37-
raise ValueError("Parameter 'subscription_id' must not be None.")
38-
if not base_url:
39-
base_url = 'https://management.azure.com'
40-
41-
super(StorageCacheManagementClientConfiguration, self).__init__(base_url)
42-
43-
# Starting Autorest.Python 4.0.64, make connection pool activated by default
44-
self.keep_alive = True
45-
46-
self.add_user_agent('azure-mgmt-storagecache/{}'.format(VERSION))
47-
self.add_user_agent('Azure-SDK-For-Python')
48-
49-
self.credentials = credentials
50-
self.subscription_id = subscription_id
1+
# coding=utf-8
2+
# --------------------------------------------------------------------------
3+
# Copyright (c) Microsoft Corporation. All rights reserved.
4+
# Licensed under the MIT License. See License.txt in the project root for license information.
5+
# Code generated by Microsoft (R) AutoRest Code Generator.
6+
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
7+
# --------------------------------------------------------------------------
8+
9+
from typing import TYPE_CHECKING
10+
11+
from azure.core.configuration import Configuration
12+
from azure.core.pipeline import policies
13+
from azure.mgmt.core.policies import ARMHttpLoggingPolicy
14+
15+
from ._version import VERSION
16+
17+
if TYPE_CHECKING:
18+
# pylint: disable=unused-import,ungrouped-imports
19+
from typing import Any
20+
21+
from azure.core.credentials import TokenCredential
22+
23+
24+
class StorageCacheManagementClientConfiguration(Configuration):
25+
"""Configuration for StorageCacheManagementClient.
26+
27+
Note that all parameters used to create this instance are saved as instance
28+
attributes.
29+
30+
:param credential: Credential needed for the client to connect to Azure.
31+
:type credential: ~azure.core.credentials.TokenCredential
32+
:param subscription_id: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
33+
:type subscription_id: str
34+
"""
35+
36+
def __init__(
37+
self,
38+
credential, # type: "TokenCredential"
39+
subscription_id, # type: str
40+
**kwargs # type: Any
41+
):
42+
# type: (...) -> None
43+
if credential is None:
44+
raise ValueError("Parameter 'credential' must not be None.")
45+
if subscription_id is None:
46+
raise ValueError("Parameter 'subscription_id' must not be None.")
47+
super(StorageCacheManagementClientConfiguration, self).__init__(**kwargs)
48+
49+
self.credential = credential
50+
self.subscription_id = subscription_id
51+
self.api_version = "2019-11-01"
52+
self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default'])
53+
kwargs.setdefault('sdk_moniker', 'mgmt-storagecache/{}'.format(VERSION))
54+
self._configure(**kwargs)
55+
56+
def _configure(
57+
self,
58+
**kwargs # type: Any
59+
):
60+
# type: (...) -> None
61+
self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs)
62+
self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs)
63+
self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs)
64+
self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs)
65+
self.http_logging_policy = kwargs.get('http_logging_policy') or ARMHttpLoggingPolicy(**kwargs)
66+
self.retry_policy = kwargs.get('retry_policy') or policies.RetryPolicy(**kwargs)
67+
self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs)
68+
self.redirect_policy = kwargs.get('redirect_policy') or policies.RedirectPolicy(**kwargs)
69+
self.authentication_policy = kwargs.get('authentication_policy')
70+
if self.credential and not self.authentication_policy:
71+
self.authentication_policy = policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)

0 commit comments

Comments
 (0)