1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
# 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.
#--------------------------------------------------------------------------
# TEST SCENARIO COVERAGE
# ----------------------
# Methods Total : 10
# Methods Covered : 9
# Examples Total : 11
# Examples Tested : 11
# Coverage % : 90
# ----------------------
import unittest
import azure.mgmt.imagebuilder
from devtools_testutils import AzureMgmtTestCase, ResourceGroupPreparer
AZURE_LOCATION = 'eastus'
IMAGE_TEMPLATE_NAME = "MyImageTemplate"
IMAGE_NAME = 'MyImage'
RUN_OUTPUT_NAME = 'image_it_pir_1'
# make sure to create user identity with this doc before running live test: https://github.com/danielsollondon/azvmimagebuilder/tree/master/quickquickstarts/0_Creating_a_Custom_Windows_Managed_Image#step-2--permissions-create-user-idenity-and-role-for-aib
IDENTITY_NAME = 'aibIdentity1588309486'
class MgmtImageBuilderClientTest(AzureMgmtTestCase):
def setUp(self):
super(MgmtImageBuilderClientTest, self).setUp()
self.mgmt_client = self.create_mgmt_client(
azure.mgmt.imagebuilder.ImageBuilderClient
)
@ResourceGroupPreparer(location=AZURE_LOCATION)
def test_imagebuilder(self, resource_group):
# Create an Image Template with a user assigned identity configured[put]
BODY = {
"location": "eastus",
"tags": {
"imagetemplate_tag1": "IT_T1",
"imagetemplate_tag2": "IT_T2"
},
"identity": {
"type": "UserAssigned",
"user_assigned_identities": { "/subscriptions/{}/resourceGroups/{}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{}".format(self.settings.SUBSCRIPTION_ID, resource_group.name, IDENTITY_NAME): {}}
},
"properties": {
"source": {
"type": "ManagedImage",
"image_id": "/subscriptions/" + self.settings.SUBSCRIPTION_ID + "/resourceGroups/" + resource_group.name + "/providers/Microsoft.Compute/images/" + IMAGE_NAME + ""
},
"customize": [
{
"type": "Shell",
"name": "Shell Customizer Example",
"script_uri": "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/619a017566f2bdb2d9a85afd1fe2018bed822cc8/sdk/compute/azure-mgmt-imagebuilder/tests/script.sh"
}
],
"distribute": [
{
"type": "ManagedImage",
"location": "eastus",
"run_output_name": "image_it_pir_1",
"image_id": "/subscriptions/" + self.settings.SUBSCRIPTION_ID + "/resourceGroups/" + resource_group.name + "/providers/Microsoft.Compute/images/" + IMAGE_NAME + "",
"artifact_tags": {
"tag_name": "value"
}
}
],
"vm_profile": {
"vm_size": "Standard_D2s_v3"
}
}
}
result = self.mgmt_client.virtual_machine_image_templates.create_or_update(BODY, resource_group.name, IMAGE_TEMPLATE_NAME)
result = result.result()
# Retrieve an Image Template.[get]
result = self.mgmt_client.virtual_machine_image_templates.get(resource_group.name, IMAGE_TEMPLATE_NAME)
# List images by resource group[get]
result = self.mgmt_client.virtual_machine_image_templates.list_by_resource_group(resource_group.name)
# List images by subscription.[get]
result = self.mgmt_client.virtual_machine_image_templates.list()
# Create image(s) from existing imageTemplate.[post]
result = self.mgmt_client.virtual_machine_image_templates.run(resource_group.name, IMAGE_TEMPLATE_NAME)
result = result.result()
# Retrieve single runOutput[get]
result = self.mgmt_client.virtual_machine_image_templates.get_run_output(resource_group.name, IMAGE_TEMPLATE_NAME, RUN_OUTPUT_NAME)
# Retrieve a list of all outputs created by the last run of an Image Template[get]
result = self.mgmt_client.virtual_machine_image_templates.list_run_outputs(resource_group.name, IMAGE_TEMPLATE_NAME)
# Remove identities for an Image Template.[patch]
BODY = {
"identity": {
"type": "None"
}
}
#result = self.mgmt_client.virtual_machine_image_templates.update(resource_group.name, IMAGE_TEMPLATE_NAME, BODY)
#result = result.result()
# Update the tags for an Image Template.[patch]
BODY = {
"tags": {
"new-tag": "new-value"
}
}
#result = self.mgmt_client.virtual_machine_image_templates.update(resource_group.name, IMAGE_TEMPLATE_NAME, BODY)
#result = result.result()
# Delete an Image Template.[delete]
result = self.mgmt_client.virtual_machine_image_templates.delete(resource_group.name, IMAGE_TEMPLATE_NAME)
result = result.result()
#------------------------------------------------------------------------------
if __name__ == '__main__':
unittest.main()
|