Skip to content

Commit 4dbefd4

Browse files
authored
[Key Vault] Fix backup/restore tests in administration (#23558)
1 parent 95839c9 commit 4dbefd4

File tree

5 files changed

+32
-31
lines changed

5 files changed

+32
-31
lines changed

.vscode/cspell.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,7 @@
239239
"parameterizing",
240240
"pytz",
241241
"pywin",
242+
"RAGRS",
242243
"rdbms",
243244
"reauthenticated",
244245
"reimage",
@@ -248,6 +249,7 @@
248249
"RSNULL",
249250
"rtsp",
250251
"rtype",
252+
"rwdlacu",
251253
"scbedd",
252254
"sdist",
253255
"secbak",

sdk/keyvault/azure-keyvault-administration/tests/_test_case.py

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -84,23 +84,8 @@ def setUp(self, *args, **kwargs):
8484
self.container_uri = "https://{}.blob.{}/{}".format(storage_name, storage_endpoint_suffix, container_name)
8585
self._scrub_url(real_url=self.container_uri, playback_url=container_playback_uri)
8686

87-
storage_account_key = os.environ.get("BLOB_PRIMARY_STORAGE_ACCOUNT_KEY")
88-
if storage_account_key:
89-
self.sas_token = generate_account_sas(
90-
account_name=storage_name,
91-
account_key=storage_account_key,
92-
resource_types=ResourceTypes(container=True, object=True),
93-
permission=AccountSasPermissions(
94-
create=True,
95-
list=True,
96-
write=True,
97-
read=True,
98-
add=True,
99-
delete=True,
100-
delete_previous_version=True,
101-
),
102-
expiry=datetime.utcnow() + timedelta(minutes=30),
103-
)
87+
self.sas_token = os.environ.get("BLOB_STORAGE_SAS_TOKEN")
88+
if self.sas_token:
10489
self.scrubber.register_name_pair(self.sas_token, playback_sas_token)
10590
else:
10691
self.managed_hsm_url = hsm_playback_url

sdk/keyvault/azure-keyvault-administration/tests/test_backup_client.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,6 @@ def __init__(self, *args, **kwargs):
2323
@all_api_versions()
2424
@backup_client_setup
2525
def test_full_backup_and_restore(self, client):
26-
if self.is_live:
27-
pytest.skip("SAS token failures are causing sev2 alerts for service team")
28-
2926
# backup the vault
3027
backup_poller = client.begin_backup(self.container_uri, self.sas_token)
3128
backup_operation = backup_poller.result()
@@ -70,9 +67,6 @@ def test_full_backup_and_restore_rehydration(self, client):
7067
@all_api_versions()
7168
@backup_client_setup
7269
def test_selective_key_restore(self, client):
73-
if self.is_live:
74-
pytest.skip("SAS token failures are causing sev2 alerts for service team")
75-
7670
# create a key to selectively restore
7771
key_client = self.create_key_client(self.managed_hsm_url)
7872
key_name = self.get_resource_name("selective-restore-test-key")

sdk/keyvault/azure-keyvault-administration/tests/test_backup_client_async.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,6 @@ def __init__(self, *args, **kwargs):
2121
@all_api_versions()
2222
@backup_client_setup
2323
async def test_full_backup_and_restore(self, client):
24-
if self.is_live:
25-
pytest.skip("SAS token failures are causing sev2 alerts for service team")
26-
2724
# backup the vault
2825
backup_poller = await client.begin_backup(self.container_uri, self.sas_token)
2926
backup_operation = await backup_poller.result()
@@ -68,9 +65,6 @@ async def test_full_backup_and_restore_rehydration(self, client):
6865
@all_api_versions()
6966
@backup_client_setup
7067
async def test_selective_key_restore(self, client):
71-
if self.is_live:
72-
pytest.skip("SAS token failures are causing sev2 alerts for service team")
73-
7468
# create a key to selectively restore
7569
key_client = self.create_key_client(self.managed_hsm_url, is_async=True)
7670
key_name = self.get_resource_name("selective-restore-test-key")

sdk/keyvault/test-resources.json

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,26 @@
7777
"description": "Key Vault SKU to deploy. The default is 'premium'"
7878
}
7979
},
80+
"baseTime": {
81+
"type": "string",
82+
"defaultValue": "[utcNow('u')]",
83+
"metadata": {
84+
"description": "The base time to add 500 minutes to for SAS token expiration. The default is the current time."
85+
}
86+
},
8087
"attestationImage": {
8188
"type": "string",
8289
"defaultValue": "keyvault-mock-attestation:latest",
8390
"metadata": {
8491
"description": "The container image name and tag to use for the attestation mock service."
8592
}
93+
},
94+
"storageEndpointSuffix": {
95+
"type": "string",
96+
"defaultValue": "core.windows.net",
97+
"metadata": {
98+
"description": "The url suffix to use when accessing the storage data plane."
99+
}
86100
}
87101
},
88102
"variables": {
@@ -111,6 +125,14 @@
111125
"virtualNetworkRules": [],
112126
"ipRules": [],
113127
"defaultAction": "Allow"
128+
},
129+
"accountSasProperties": {
130+
"signedServices": "b",
131+
"signedPermission": "rwdlacu",
132+
"signedProtocol": "https",
133+
"signedExpiry": "[dateTimeAdd(parameters('baseTime'), 'PT500M')]",
134+
"signedResourceTypes": "sco",
135+
"keyToSign": "key1"
114136
}
115137
},
116138
"resources": [
@@ -270,13 +292,17 @@
270292
"type": "string",
271293
"value": "[parameters('testApplicationOid')]"
272294
},
295+
"KEYVAULT_STORAGE_ENDPOINT_SUFFIX": {
296+
"type": "string",
297+
"value": "[parameters('storageEndpointSuffix')]"
298+
},
273299
"BLOB_STORAGE_ACCOUNT_NAME": {
274300
"type": "string",
275301
"value": "[variables('primaryAccountName')]"
276302
},
277-
"BLOB_PRIMARY_STORAGE_ACCOUNT_KEY": {
303+
"BLOB_STORAGE_SAS_TOKEN": {
278304
"type": "string",
279-
"value": "[listKeys(variables('primaryAccountName'), variables('mgmtApiVersion')).keys[0].value]"
305+
"value": "[listAccountSas(variables('primaryAccountName'), '2019-06-01', variables('accountSasProperties')).accountSasToken]"
280306
},
281307
"BLOB_CONTAINER_NAME" : {
282308
"type": "string",

0 commit comments

Comments
 (0)