diff --git a/plugins/modules/azure_rm_virtualmachineimage_info.py b/plugins/modules/azure_rm_virtualmachineimage_info.py index 3f0e9e23e..a41fb7bc0 100644 --- a/plugins/modules/azure_rm_virtualmachineimage_info.py +++ b/plugins/modules/azure_rm_virtualmachineimage_info.py @@ -177,16 +177,25 @@ def exec_module(self, **kwargs): def get_item(self): item = None result = [] + versions = None try: - item = self.compute_client.virtual_machine_images.get(self.location, - self.publisher, - self.offer, - self.sku, - self.version) + versions = self.compute_client.virtual_machine_images.list(self.location, + self.publisher, + self.offer, + self.sku, + top=1, + orderby='name desc') except CloudError: pass + if self.version == 'latest': + item = versions[-1] + else: + for version in versions: + if version.name == self.version: + item = version + if item: result = [self.serialize_obj(item, 'VirtualMachineImage', enum_modules=AZURE_ENUM_MODULES)] diff --git a/tests/integration/targets/azure_rm_virtualmachineimage_info/tasks/main.yml b/tests/integration/targets/azure_rm_virtualmachineimage_info/tasks/main.yml index 687402d9f..88fd5ce19 100644 --- a/tests/integration/targets/azure_rm_virtualmachineimage_info/tasks/main.yml +++ b/tests/integration/targets/azure_rm_virtualmachineimage_info/tasks/main.yml @@ -41,3 +41,15 @@ - assert: that: output['vmimages'] | length > 0 + +- name: Get facts for a specific image's latest version + azure_rm_virtualmachineimage_info: + location: "{{ location }}" + publisher: OpenLogic + offer: CentOS + sku: '7.5' + version: 'latest' + register: output + +- assert: + that: output['vmimages'] | length == 1 \ No newline at end of file