Skip to content

Commit

Permalink
[HPC-CACHE] Migrate to track2 (Azure#3351)
Browse files Browse the repository at this point in the history
  • Loading branch information
00Kai0 authored May 19, 2021
1 parent 394d08d commit bfd2ba6
Show file tree
Hide file tree
Showing 31 changed files with 8,210 additions and 4,267 deletions.
4 changes: 4 additions & 0 deletions src/hpc-cache/HISTORY.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@
Release History
===============

0.1.5
++++++
* Migrate to track2 SDK

0.1.4
++++++
* Fix #2695: Improve the help description of parameter `--nfs3-usage-model`.
Expand Down
31 changes: 15 additions & 16 deletions src/hpc-cache/azext_hpc_cache/custom.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ def create_hpc_cache(client,
body['cache_size_gb'] = cache_size_gb # number
body['subnet'] = subnet # str
body.setdefault('sku', {})['name'] = sku_name # str
return sdk_no_wait(no_wait, client.create_or_update, resource_group_name=resource_group_name, cache_name=name,
return sdk_no_wait(no_wait, client.begin_create_or_update, resource_group_name=resource_group_name, cache_name=name,
cache=body)


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


def delete_hpc_cache(client,
resource_group_name,
name,
no_wait=False):
return sdk_no_wait(no_wait, client.delete, resource_group_name=resource_group_name, cache_name=name)
return sdk_no_wait(no_wait, client.begin_delete, resource_group_name=resource_group_name, cache_name=name)


def get_hpc_cache(client,
Expand All @@ -75,27 +74,27 @@ def list_hpc_cache(client,
def flush_hpc_cache(client,
resource_group_name,
name):
return client.flush(resource_group_name=resource_group_name, cache_name=name)
return client.begin_flush(resource_group_name=resource_group_name, cache_name=name)


def upgrade_firmware_hpc_cache(client,
resource_group_name,
name):
return client.upgrade_firmware(resource_group_name=resource_group_name, cache_name=name)
return client.begin_upgrade_firmware(resource_group_name=resource_group_name, cache_name=name)


def start_hpc_cache(client,
resource_group_name,
name,
no_wait=False):
return sdk_no_wait(no_wait, client.start, resource_group_name=resource_group_name, cache_name=name)
return sdk_no_wait(no_wait, client.begin_start, resource_group_name=resource_group_name, cache_name=name)


def stop_hpc_cache(client,
resource_group_name,
name,
no_wait=False):
return sdk_no_wait(no_wait, client.stop, resource_group_name=resource_group_name, cache_name=name)
return sdk_no_wait(no_wait, client.begin_stop, resource_group_name=resource_group_name, cache_name=name)


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


def create_hpc_cache_nfs_storage_target(client,
Expand All @@ -124,8 +123,8 @@ def create_hpc_cache_nfs_storage_target(client,
body['target_type'] = 'nfs3' # str
body.setdefault('nfs3', {})['target'] = nfs3_target # str
body.setdefault('nfs3', {})['usage_model'] = nfs3_usage_model # str
return client.create_or_update(resource_group_name=resource_group_name, cache_name=cache_name,
storage_target_name=name, storagetarget=body)
return client.begin_create_or_update(resource_group_name=resource_group_name, cache_name=cache_name,
storage_target_name=name, storagetarget=body)


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


def update_hpc_cache_nfs_storage_target(client,
Expand All @@ -156,15 +155,15 @@ def update_hpc_cache_nfs_storage_target(client,
body['target_type'] = 'nfs3' # str
body.setdefault('nfs3', {})['target'] = nfs3_target # str
body.setdefault('nfs3', {})['usage_model'] = nfs3_usage_model # str
return client.create_or_update(resource_group_name=resource_group_name, cache_name=cache_name,
storage_target_name=name, storagetarget=body)
return client.begin_create_or_update(resource_group_name=resource_group_name, cache_name=cache_name,
storage_target_name=name, storagetarget=body)


def delete_hpc_cache_storage_target(client,
resource_group_name,
cache_name,
name):
return client.delete(resource_group_name=resource_group_name, cache_name=cache_name, storage_target_name=name)
return client.begin_delete(resource_group_name=resource_group_name, cache_name=cache_name, storage_target_name=name)


def get_hpc_cache_storage_target(client,
Expand Down
3,420 changes: 2,399 additions & 1,021 deletions src/hpc-cache/azext_hpc_cache/tests/latest/recordings/test_hpc_cache.yaml

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ def test_hpc_cache(self, resource_group):
'storage_name': self.create_random_name(prefix='storagename', length=24),
'container_name': self.create_random_name(prefix='containername', length=24)
})
principal_id = os.environ.get('AZURE_CLIENT_ID', '8a95323f-4a83-4a69-903f-7d2c69349c3c')

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

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

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

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

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

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

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

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

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

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

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

vnet_id = self.cmd('az network vnet create -g {rg} -n {vnet_name} -l {loc} --address-prefix 10.7.0.0/16 '
'--subnet-name default --subnet-prefix 10.7.0.0/24').get_output_in_json()['newVNet']['id']
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for
# license information.
#
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------

from ._configuration import StorageCacheManagementClientConfiguration
from ._storage_cache_management_client import StorageCacheManagementClient
__all__ = ['StorageCacheManagementClient', 'StorageCacheManagementClientConfiguration']

from .version import VERSION

__version__ = VERSION
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------

from ._storage_cache_management_client import StorageCacheManagementClient
from ._version import VERSION

__version__ = VERSION
__all__ = ['StorageCacheManagementClient']

try:
from ._patch import patch_sdk # type: ignore
patch_sdk()
except ImportError:
pass
Original file line number Diff line number Diff line change
@@ -1,50 +1,71 @@
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for
# license information.
#
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------
from msrestazure import AzureConfiguration

from .version import VERSION


class StorageCacheManagementClientConfiguration(AzureConfiguration):
"""Configuration for StorageCacheManagementClient
Note that all parameters used to create this instance are saved as instance
attributes.
:param credentials: Credentials needed for the client to connect to Azure.
:type credentials: :mod:`A msrestazure Credentials
object<msrestazure.azure_active_directory>`
:param subscription_id: Subscription credentials which uniquely identify
Microsoft Azure subscription. The subscription ID forms part of the URI
for every service call.
:type subscription_id: str
:param str base_url: Service URL
"""

def __init__(
self, credentials, subscription_id, base_url=None):

if credentials is None:
raise ValueError("Parameter 'credentials' must not be None.")
if subscription_id is None:
raise ValueError("Parameter 'subscription_id' must not be None.")
if not base_url:
base_url = 'https://management.azure.com'

super(StorageCacheManagementClientConfiguration, self).__init__(base_url)

# Starting Autorest.Python 4.0.64, make connection pool activated by default
self.keep_alive = True

self.add_user_agent('azure-mgmt-storagecache/{}'.format(VERSION))
self.add_user_agent('Azure-SDK-For-Python')

self.credentials = credentials
self.subscription_id = subscription_id
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------

from typing import TYPE_CHECKING

from azure.core.configuration import Configuration
from azure.core.pipeline import policies
from azure.mgmt.core.policies import ARMHttpLoggingPolicy

from ._version import VERSION

if TYPE_CHECKING:
# pylint: disable=unused-import,ungrouped-imports
from typing import Any

from azure.core.credentials import TokenCredential


class StorageCacheManagementClientConfiguration(Configuration):
"""Configuration for StorageCacheManagementClient.
Note that all parameters used to create this instance are saved as instance
attributes.
:param credential: Credential needed for the client to connect to Azure.
:type credential: ~azure.core.credentials.TokenCredential
:param subscription_id: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
:type subscription_id: str
"""

def __init__(
self,
credential, # type: "TokenCredential"
subscription_id, # type: str
**kwargs # type: Any
):
# type: (...) -> None
if credential is None:
raise ValueError("Parameter 'credential' must not be None.")
if subscription_id is None:
raise ValueError("Parameter 'subscription_id' must not be None.")
super(StorageCacheManagementClientConfiguration, self).__init__(**kwargs)

self.credential = credential
self.subscription_id = subscription_id
self.api_version = "2019-11-01"
self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default'])
kwargs.setdefault('sdk_moniker', 'mgmt-storagecache/{}'.format(VERSION))
self._configure(**kwargs)

def _configure(
self,
**kwargs # type: Any
):
# type: (...) -> None
self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs)
self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs)
self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs)
self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs)
self.http_logging_policy = kwargs.get('http_logging_policy') or ARMHttpLoggingPolicy(**kwargs)
self.retry_policy = kwargs.get('retry_policy') or policies.RetryPolicy(**kwargs)
self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs)
self.redirect_policy = kwargs.get('redirect_policy') or policies.RedirectPolicy(**kwargs)
self.authentication_policy = kwargs.get('authentication_policy')
if self.credential and not self.authentication_policy:
self.authentication_policy = policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)
Loading

0 comments on commit bfd2ba6

Please sign in to comment.