openstack-image-manager 0.20231212.0__py3-none-any.whl → 0.20231219.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1097,7 +1097,11 @@ class ImageManager:
1097
1097
  logger.info("Deactivating image '%s'" % image)
1098
1098
  self.conn.image.deactivate_image(cloud_image.id)
1099
1099
 
1100
- if self.CONF.hide and not self.CONF.dry_run:
1100
+ if (
1101
+ self.CONF.hide
1102
+ and not self.CONF.dry_run
1103
+ and cloud_image.visibility != "community"
1104
+ ):
1101
1105
  logger.info(
1102
1106
  "Setting visibility of '%s' to 'community'" % image
1103
1107
  )
@@ -1107,6 +1111,17 @@ class ImageManager:
1107
1111
  except Exception as e:
1108
1112
  logger.error("An Exception occurred: \n%s" % e)
1109
1113
  self.exit_with_error = True
1114
+ elif counter[image_name] <= last:
1115
+ logger.info(
1116
+ f"Image '{image}' will not be deleted, {counter[image_name]} <= {last}"
1117
+ )
1118
+ if (
1119
+ self.CONF.hide
1120
+ and not self.CONF.dry_run
1121
+ and cloud_image.visibility != "community"
1122
+ ):
1123
+ logger.info("Setting visibility of '%s' to 'community'" % image)
1124
+ self.conn.image.update_image(cloud_image.id, visibility="community")
1110
1125
  elif (
1111
1126
  counter[image_name] < last and self.CONF.hide and not self.CONF.dry_run
1112
1127
  ):
@@ -51,6 +51,18 @@ def main(
51
51
  logger.remove()
52
52
  logger.add(sys.stderr, format=log_fmt, level=level, colorize=True)
53
53
 
54
+ client = Minio(
55
+ minio_server,
56
+ access_key=minio_access_key,
57
+ secret_key=minio_secret_key,
58
+ )
59
+
60
+ result = client.bucket_exists(minio_bucket)
61
+ if not result:
62
+ logger.error(f"Create bucket '{minio_bucket}' first")
63
+ if not dry_run:
64
+ sys.exit(1)
65
+
54
66
  onlyfiles = []
55
67
  for f in listdir(images):
56
68
  if isfile(join(images, f)):
@@ -58,24 +70,17 @@ def main(
58
70
  onlyfiles.append(f)
59
71
 
60
72
  all_images = []
61
- for file in onlyfiles:
73
+ for file in [x for x in onlyfiles if x.endswith(".yml")]:
74
+ logger.info(f"Processing file {file}")
62
75
  with open(join(images, file)) as fp:
63
76
  data = yaml.load(fp, Loader=yaml.SafeLoader)
64
77
  for image in data.get("images"):
65
78
  logger.debug(f"Adding {image['name']} to the list of images")
66
79
  all_images.append(image)
67
80
 
68
- client = Minio(
69
- minio_server,
70
- access_key=minio_access_key,
71
- secret_key=minio_secret_key,
72
- )
73
-
74
- result = client.bucket_exists(minio_bucket)
75
- if not result:
76
- logger.error(f"Create bucket '{minio_bucket}' first")
77
-
78
81
  for image in all_images:
82
+ logger.info(f"Processing image {image['name']}")
83
+
79
84
  if "versions" not in image:
80
85
  continue
81
86
 
@@ -105,31 +110,32 @@ def main(
105
110
 
106
111
  try:
107
112
  client.stat_object(minio_bucket, os.path.join(dirname, filename))
108
- logger.info(f"'{filename}' available in '{dirname}'")
113
+ logger.info(f"File {filename} available in bucket {dirname}")
109
114
  except S3Error:
110
- logger.info(f"'{filename}' not yet available in '{dirname}'")
115
+ logger.info(f"File {filename} not yet available in bucket {dirname}")
111
116
 
112
- logger.info(f"Downloading {version['source']}")
113
- response = requests.get(
114
- version["source"], stream=True, allow_redirects=True
115
- )
116
- with open(os.path.basename(path.path), "wb") as fp:
117
- shutil.copyfileobj(response.raw, fp)
118
- del response
117
+ if not isfile(os.path.basename(path.path)):
118
+ logger.info(f"Downloading {version['source']}")
119
+ response = requests.get(
120
+ version["source"], stream=True, allow_redirects=True
121
+ )
122
+ with open(os.path.basename(path.path), "wb") as fp:
123
+ shutil.copyfileobj(response.raw, fp)
124
+ del response
119
125
 
120
126
  if fileextension in [".bz2", ".zip", ".xz", ".gz"]:
121
- logger.info(f"Decompressing '{os.path.basename(path.path)}'")
127
+ logger.info(f"Decompressing {os.path.basename(path.path)}")
122
128
  patoolib.extract_archive(os.path.basename(path.path), outdir=".")
123
129
  os.remove(os.path.basename(path.path))
124
130
 
125
131
  if not dry_run:
126
- logger.info(f"Uploading '{filename}' to '{dirname}'")
132
+ logger.info(f"Uploading {filename} to bucket {dirname}")
127
133
  client.fput_object(
128
134
  minio_bucket, os.path.join(dirname, filename), filename
129
135
  )
130
136
  else:
131
137
  logger.info(
132
- f"Not uploading '{filename}' to '{dirname}' (dry-run enabled)"
138
+ f"Not uploading {filename} to bucket {dirname} (dry-run enabled)"
133
139
  )
134
140
 
135
141
  os.remove(filename)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openstack-image-manager
3
- Version: 0.20231212.0
3
+ Version: 0.20231219.0
4
4
  Summary: OpenStack image manager
5
5
  Author-email: OSISM community <info@osism.tech>
6
6
  License: Apache License
@@ -227,7 +227,7 @@ Requires-Dist: minio ==7.2.0
227
227
  Requires-Dist: munch ==4.0.0
228
228
  Requires-Dist: natsort ==8.4.0
229
229
  Requires-Dist: openstacksdk ==2.0.0
230
- Requires-Dist: paramiko ==3.3.1
230
+ Requires-Dist: paramiko ==3.4.0
231
231
  Requires-Dist: patool ==1.15.0
232
232
  Requires-Dist: requests ==2.31.0
233
233
  Requires-Dist: ruamel.yaml ==0.18.5
@@ -0,0 +1,11 @@
1
+ openstack_image_manager/__init__.py,sha256=z6lQHDMfCV8IkUz5pM1QYfQ37O2Rdy82jYovN8N9DIU,240
2
+ openstack_image_manager/manage.py,sha256=-ESAYvzqxh3e_5B6JS6Ng7H-NdZ-9yMbMqPSM4mItso,47686
3
+ openstack_image_manager/mirror.py,sha256=jiR3OubMzGvCBd-ma_m6k2dDDsWYgwzhdefCBKvUQZs,4738
4
+ openstack_image_manager/table.py,sha256=cZ6Xuqp8uh2V5_uzT4KwWoiLAUdvsPZkrPjOXdxFeU4,1080
5
+ openstack_image_manager/update.py,sha256=QCWbubWLao0UcADZnmM7rcNlWo02PLezwQbE1Tr8j0c,10546
6
+ openstack_image_manager-0.20231219.0.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
7
+ openstack_image_manager-0.20231219.0.dist-info/METADATA,sha256=yAbf5SOdrIueV1WuHo-mc6BBnUO9k260GXYQnKGclNU,14876
8
+ openstack_image_manager-0.20231219.0.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
9
+ openstack_image_manager-0.20231219.0.dist-info/entry_points.txt,sha256=AEHPHHHZ3jAZfpvaI5ZzLi3DHb9vGQwL7TJcw_G_5nc,80
10
+ openstack_image_manager-0.20231219.0.dist-info/top_level.txt,sha256=iLfREddId51T97Dr9IGRQtJXKJgVy1PB6uHCaQk1j44,24
11
+ openstack_image_manager-0.20231219.0.dist-info/RECORD,,
@@ -1,11 +0,0 @@
1
- openstack_image_manager/__init__.py,sha256=z6lQHDMfCV8IkUz5pM1QYfQ37O2Rdy82jYovN8N9DIU,240
2
- openstack_image_manager/manage.py,sha256=MCJZH9cg9_Zx46ATjzWrPyPVGwN-lJTAh8lcLihybpw,46990
3
- openstack_image_manager/mirror.py,sha256=rscIJO5c1ZDL5ejHKfHKJKOVSE_xTzxNBk006ytZyZk,4442
4
- openstack_image_manager/table.py,sha256=cZ6Xuqp8uh2V5_uzT4KwWoiLAUdvsPZkrPjOXdxFeU4,1080
5
- openstack_image_manager/update.py,sha256=QCWbubWLao0UcADZnmM7rcNlWo02PLezwQbE1Tr8j0c,10546
6
- openstack_image_manager-0.20231212.0.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
7
- openstack_image_manager-0.20231212.0.dist-info/METADATA,sha256=VBYcpHP6uF435ryY58smiOhIlEDUHBSPDOm_uTCHidU,14876
8
- openstack_image_manager-0.20231212.0.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
9
- openstack_image_manager-0.20231212.0.dist-info/entry_points.txt,sha256=AEHPHHHZ3jAZfpvaI5ZzLi3DHb9vGQwL7TJcw_G_5nc,80
10
- openstack_image_manager-0.20231212.0.dist-info/top_level.txt,sha256=iLfREddId51T97Dr9IGRQtJXKJgVy1PB6uHCaQk1j44,24
11
- openstack_image_manager-0.20231212.0.dist-info/RECORD,,