+ def get_image_list(self, filter_dict={}):
+ """
+ The urn contains for marketplace 'publisher:offer:sku:version'
+
+ :param filter_dict:
+ :return:
+ """
+ image_list = []
+
+ self._reload_connection()
+ if filter_dict.get("name"):
+ params = filter_dict["name"].split(":")
+ if len(params) >= 3:
+ publisher = params[0]
+ offer = params[1]
+ sku = params[2]
+ version = None
+ if len(params) == 4:
+ version = params[3]
+ images = self.conn_compute.virtual_machine_images.list(self.region, publisher, offer, sku)
+ for image in images:
+ if version:
+ image_version = str(image.id).split("/")[-1]
+ if image_version != version:
+ continue
+ image_list.append({
+ 'id': str(image.id),
+ 'name': self._get_resource_name_from_resource_id(image.id)
+ })
+ return image_list
+
+ images = self.conn_compute.virtual_machine_images.list()
+
+ for image in images:
+ # TODO implement filter_dict
+ if filter_dict:
+ if filter_dict.get("id") and str(image.id) != filter_dict["id"]:
+ continue
+ if filter_dict.get("name") and \
+ self._get_resource_name_from_resource_id(image.id) != filter_dict["name"]:
+ continue
+ # TODO add checksum
+ image_list.append({
+ 'id': str(image.id),
+ 'name': self._get_resource_name_from_resource_id(image.id),
+ })
+ return image_list
+