Skip to content

Commit 0b8a7bc

Browse files
committed
[test] - Added handling to vm create and vmss create command
1 parent 5c28bbe commit 0b8a7bc

File tree

1 file changed

+42
-18
lines changed

1 file changed

+42
-18
lines changed

src/azure-cli/azure/cli/command_modules/vm/tests/latest/test_vm_commands.py

Lines changed: 42 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6056,17 +6056,23 @@ def test_vm_msi(self, resource_group):
60566056
})
60576057

60586058
with self.assertRaisesRegex(ArgumentUsageError, "please specify both --role and --scope"):
6059-
self.cmd('vm create -g {rg} -n {vm1} --image Debian:debian-10:10:latest --assign-identity --admin-username admin123 '
6060-
'--admin-password PasswordPassword1! --subnet {subnet} --vnet-name {vnet} --nsg-rule NONE --scope {scope}')
6059+
self.cmd('vm create -g {rg} -n {vm1} --image Debian:debian-10:10:latest '
6060+
'--assign-identity --admin-username admin123 --admin-password PasswordPassword1! '
6061+
'--subnet {subnet} --vnet-name {vnet} --nsg-rule NONE --scope {scope} '
6062+
'--size Standard_B2ms')
60616063

60626064
with self.assertRaisesRegex(ArgumentUsageError, "please specify both --role and --scope"):
6063-
self.cmd('vm create -g {rg} -n {vm1} --image Debian:debian-10:10:latest --assign-identity --admin-username admin123 '
6064-
'--admin-password PasswordPassword1! --subnet {subnet} --vnet-name {vnet} --nsg-rule NONE --role Contributor')
6065+
self.cmd('vm create -g {rg} -n {vm1} --image Debian:debian-10:10:latest '
6066+
'--assign-identity --admin-username admin123 --admin-password PasswordPassword1! '
6067+
'--subnet {subnet} --vnet-name {vnet} --nsg-rule NONE --role Contributor '
6068+
'--size Standard_B2ms')
60656069

60666070
with mock.patch('azure.cli.core.commands.arm._gen_guid', side_effect=self.create_guid):
60676071
# create a linux vm with default configuration
6068-
self.cmd('vm create -g {rg} -n {vm1} --image Debian:debian-10:10:latest --assign-identity --admin-username admin123 '
6069-
'--admin-password PasswordPassword1! --scope {scope} --role Contributor --subnet {subnet} --vnet-name {vnet} --nsg-rule NONE', checks=[
6072+
self.cmd('vm create -g {rg} -n {vm1} --image Debian:debian-10:10:latest '
6073+
'--assign-identity --admin-username admin123 --admin-password PasswordPassword1! '
6074+
'--scope {scope} --role Contributor --subnet {subnet} --vnet-name {vnet} --nsg-rule NONE '
6075+
'--size Standard_B2ms', checks=[
60706076
self.check('identity.role', 'Contributor'),
60716077
self.check('identity.scope', '/subscriptions/{sub}/resourceGroups/{rg}'),
60726078
])
@@ -6076,16 +6082,21 @@ def test_vm_msi(self, resource_group):
60766082
'network vnet subnet update -g {rg} --vnet-name {vnet} -n {subnet} --default-outbound-access false')
60776083

60786084
# create a windows vm with reader role on the linux vm
6079-
result = self.cmd('vm create -g {rg} -n {vm2} --image Win2022Datacenter --assign-identity --scope {vm1_id} --role reader '
6080-
'--admin-username admin123 --admin-password PasswordPassword1! --subnet {subnet} --vnet-name {vnet} --nsg-rule NONE', checks=[
6085+
result = self.cmd('vm create -g {rg} -n {vm2} --image Win2022Datacenter '
6086+
'--assign-identity --scope {vm1_id} --role reader '
6087+
'--admin-username admin123 --admin-password PasswordPassword1! '
6088+
'--subnet {subnet} --vnet-name {vnet} --nsg-rule NONE '
6089+
'--size Standard_B2ms', checks=[
60816090
self.check('identity.role', 'reader'),
60826091
self.check('identity.scope', '{vm1_id}'),
60836092
])
60846093
uuid.UUID(result.get_output_in_json()['identity']['systemAssignedIdentity'])
60856094

60866095
# create a linux vm w/o identity and later enable it
6087-
vm3_result = self.cmd('vm create -g {rg} -n {vm3} --image Debian:debian-10:10:latest --admin-username admin123 '
6088-
'--admin-password PasswordPassword1! --subnet {subnet} --vnet-name {vnet} --nsg-rule NONE').get_output_in_json()
6096+
vm3_result = self.cmd('vm create -g {rg} -n {vm3} --image Debian:debian-10:10:latest '
6097+
'--admin-username admin123 --admin-password PasswordPassword1! '
6098+
'--subnet {subnet} --vnet-name {vnet} --nsg-rule NONE '
6099+
'--size Standard_B2ms').get_output_in_json()
60896100
self.assertIsNone(vm3_result.get('identity'))
60906101

60916102
with self.assertRaisesRegex(ArgumentUsageError, "please specify both --role and --scope when assigning a role to the managed identity"):
@@ -6168,8 +6179,10 @@ def test_vm_msi_no_scope(self, resource_group):
61686179
})
61696180

61706181
# create a linux vm with identity but w/o a role assignment (--scope "")
6171-
self.cmd('vm create -g {rg} -n {vm1} --image Debian:debian-10:10:latest --assign-identity --admin-username admin123 '
6172-
'--admin-password PasswordPassword1! --subnet {subnet} --vnet-name {vnet} --nsg-rule NONE', checks=[
6182+
self.cmd('vm create -g {rg} -n {vm1} --image Debian:debian-10:10:latest '
6183+
'--assign-identity --admin-username admin123 --admin-password PasswordPassword1! '
6184+
'--subnet {subnet} --vnet-name {vnet} --nsg-rule NONE '
6185+
'--size Standard_B2ms', checks=[
61736186
self.check('identity.scope', None),
61746187
self.check('identity.role', None),
61756188
])
@@ -6179,18 +6192,24 @@ def test_vm_msi_no_scope(self, resource_group):
61796192
'network vnet subnet update -g {rg} --vnet-name {vnet} -n {subnet} --default-outbound-access false')
61806193

61816194
# create a vmss with identity but w/o a role assignment (--scope "")
6182-
self.cmd('vmss create -g {rg} -n {vmss1} --image Debian:debian-10:10:latest --assign-identity --admin-username admin123 --admin-password PasswordPassword1! --orchestration-mode Uniform --lb-sku Standard', checks=[
6195+
self.cmd('vmss create -g {rg} -n {vmss1} --image Debian:debian-10:10:latest '
6196+
'--assign-identity --admin-username admin123 --admin-password PasswordPassword1! '
6197+
'--orchestration-mode Uniform --lb-sku Standard --vm-sku Standard_B1ls', checks=[
61836198
self.check('vmss.identity.scope', None),
61846199
])
61856200

61866201
# create a vm w/o identity
6187-
self.cmd('vm create -g {rg} -n {vm2} --image Debian:debian-10:10:latest --admin-username admin123 --admin-password PasswordPassword1! --subnet {subnet} --vnet-name {vnet} --nsg-rule NONE')
6202+
self.cmd('vm create -g {rg} -n {vm2} --image Debian:debian-10:10:latest '
6203+
'--admin-username admin123 --admin-password PasswordPassword1! '
6204+
'--subnet {subnet} --vnet-name {vnet} --nsg-rule NONE --size Standard_B2ms')
61886205
# assign identity but w/o a role assignment
61896206
self.cmd('vm identity assign -g {rg} -n {vm2}', checks=[
61906207
self.check('scope', None),
61916208
])
61926209

6193-
self.cmd('vmss create -g {rg} -n {vmss2} --image Debian:debian-10:10:latest --admin-username admin123 --admin-password PasswordPassword1! --orchestration-mode Uniform --lb-sku Standard')
6210+
self.cmd('vmss create -g {rg} -n {vmss2} --image Debian:debian-10:10:latest '
6211+
'--admin-username admin123 --admin-password PasswordPassword1! '
6212+
'--orchestration-mode Uniform --lb-sku Standard --vm-sku Standard_B1ls')
61946213
self.cmd('vmss identity assign -g {rg} -n {vmss2}', checks=[
61956214
self.check('scope', None),
61966215
])
@@ -6217,8 +6236,10 @@ def test_vm_explicit_msi(self, resource_group):
62176236
emsi2_result = self.cmd('identity create -g {rg} -n {emsi2}').get_output_in_json()
62186237

62196238
# create a vm with only user assigned identity
6220-
result = self.cmd('vm create -g {rg} -n vm2 --image Debian:debian-10:10:latest --assign-identity {emsi} '
6221-
'--generate-ssh-keys --admin-username {user} --subnet {subnet} --vnet-name {vnet} --nsg-rule NONE', checks=[
6239+
result = self.cmd('vm create -g {rg} -n vm2 --image Debian:debian-10:10:latest '
6240+
'--assign-identity {emsi} --generate-ssh-keys --admin-username {user} '
6241+
'--subnet {subnet} --vnet-name {vnet} --nsg-rule NONE '
6242+
'--size Standard_B2ms', checks=[
62226243
self.check('identity.role', None),
62236244
self.check('identity.scope', None),
62246245
]).get_output_in_json()
@@ -6232,7 +6253,10 @@ def test_vm_explicit_msi(self, resource_group):
62326253
self.assertFalse(result['identity']['systemAssignedIdentity'])
62336254

62346255
# create a vm with system + user assigned identities
6235-
result = self.cmd('vm create -g {rg} -n {vm} --image Debian:debian-10:10:latest --assign-identity {emsi} [system] --role reader --scope {scope} --generate-ssh-keys --admin-username {user} --subnet {subnet} --vnet-name {vnet} --nsg-rule NONE').get_output_in_json()
6256+
result = self.cmd('vm create -g {rg} -n {vm} --image Debian:debian-10:10:latest '
6257+
'--assign-identity {emsi} [system] --role reader --scope {scope} --generate-ssh-keys '
6258+
'--admin-username {user} --subnet {subnet} --vnet-name {vnet} --nsg-rule NONE '
6259+
'--size Standard_B2ms').get_output_in_json()
62366260
emsis = [x.lower() for x in result['identity']['userAssignedIdentities'].keys()]
62376261
self.assertEqual(emsis, [emsi_result['id'].lower()])
62386262
result = self.cmd('vm identity show -g {rg} -n {vm}', checks=[

0 commit comments

Comments
 (0)