@@ -893,6 +893,18 @@ def build_apb(project, dockerfile=None, tag=None):
893
893
return tag
894
894
895
895
896
+ def get_registry_images ():
897
+ try :
898
+ openshift_config .load_kube_config ()
899
+ oapi = openshift_client .OapiApi ()
900
+ image_list = oapi .list_image (_preload_content = False )
901
+ image_list = json .loads (image_list .data )
902
+ except Exception as e :
903
+ print ("Exception retrieving list of images: %s" % e )
904
+ raise Exception ("Unable to retrieve images in local registry" )
905
+ return image_list
906
+
907
+
896
908
def get_registry (kwargs ):
897
909
namespace = kwargs ['reg_namespace' ]
898
910
service = kwargs ['reg_svc_name' ]
@@ -914,10 +926,8 @@ def delete_old_images(image_name):
914
926
# Let's ignore the registry prefix for now because sometimes our tag doesn't match the registry
915
927
registry , image_name = image_name .split ('/' , 1 )
916
928
try :
917
- openshift_config .load_kube_config ()
918
929
oapi = openshift_client .OapiApi ()
919
- image_list = oapi .list_image (_preload_content = False )
920
- image_list = json .loads (image_list .data )
930
+ image_list = get_registry_images ()
921
931
for image in image_list ['items' ]:
922
932
image_fqn , image_sha = image ['dockerImageReference' ].split ("@" )
923
933
if image_name in image_fqn :
@@ -1150,25 +1160,37 @@ def cmdrun_push(**kwargs):
1150
1160
1151
1161
1152
1162
def cmdrun_remove (** kwargs ):
1153
- if kwargs ["all" ]:
1163
+ images = []
1164
+ if kwargs ["all" ] and not kwargs ["local" ]:
1154
1165
route = "/v2/apb"
1155
1166
old_route = "/apb/spec"
1156
1167
elif kwargs ["id" ] is not None :
1157
1168
route = "/v2/apb/" + kwargs ["id" ]
1158
1169
old_route = "/apb/spec/" + kwargs ["id" ]
1159
1170
elif kwargs ["local" ] is True :
1160
- print ("Attempting to delete associated registry image." )
1161
- project = kwargs ['base_path' ]
1162
- spec = get_spec (project , 'dict' )
1163
- kwargs ['reg_namespace' ] = "default"
1164
- kwargs ['reg_svc_name' ] = "docker-registry"
1165
- kwargs ['reg_route' ] = None
1166
- kwargs ['namespace' ] = "openshift"
1167
-
1168
- registry = get_registry (kwargs )
1169
- tag = registry + "/" + kwargs ['namespace' ] + "/" + spec ['name' ]
1170
- print ("Image: [%s]" % tag )
1171
- delete_old_images (tag )
1171
+ if kwargs ["all" ]:
1172
+ print ("Attempting to remove all registry images ending in: *-apb" )
1173
+ image_list = get_registry_images ()
1174
+ for image in image_list ['items' ]:
1175
+ image_fqn , image_sha = image ['dockerImageReference' ].split ("@" )
1176
+ if "-apb" in image_fqn :
1177
+ images .append (image_fqn )
1178
+ else :
1179
+ print ("Attempting to delete associated registry image." )
1180
+ project = kwargs ['base_path' ]
1181
+ spec = get_spec (project , 'dict' )
1182
+ kwargs ['reg_namespace' ] = "default"
1183
+ kwargs ['reg_svc_name' ] = "docker-registry"
1184
+ kwargs ['reg_route' ] = None
1185
+ kwargs ['namespace' ] = "openshift"
1186
+
1187
+ registry = get_registry (kwargs )
1188
+ tag = registry + "/" + kwargs ['namespace' ] + "/" + spec ['name' ]
1189
+ images .append (tag )
1190
+
1191
+ for image in images :
1192
+ delete_old_images (image )
1193
+
1172
1194
bootstrap (
1173
1195
kwargs ["broker" ],
1174
1196
kwargs .get ("basic_auth_username" ),
0 commit comments