small refactorings
This commit is contained in:
30
registry.py
30
registry.py
@@ -39,6 +39,19 @@ class Requests:
|
|||||||
def request(self, method, url, **kwargs):
|
def request(self, method, url, **kwargs):
|
||||||
return requests.request(method, url, **kwargs)
|
return requests.request(method, url, **kwargs)
|
||||||
|
|
||||||
|
def natural_keys(text):
|
||||||
|
'''
|
||||||
|
alist.sort(key=natural_keys) sorts in human order
|
||||||
|
http://nedbatchelder.com/blog/200712/human_sorting.html
|
||||||
|
(See Toothy's implementation in the comments)
|
||||||
|
'''
|
||||||
|
|
||||||
|
def __atoi(text):
|
||||||
|
return int(text) if text.isdigit() else text
|
||||||
|
|
||||||
|
return [ __atoi(c) for c in re.split('(\d+)', text) ]
|
||||||
|
|
||||||
|
|
||||||
# class to manipulate registry
|
# class to manipulate registry
|
||||||
class Registry:
|
class Registry:
|
||||||
|
|
||||||
@@ -85,18 +98,8 @@ class Registry:
|
|||||||
return r
|
return r
|
||||||
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def __atoi(text):
|
|
||||||
return int(text) if text.isdigit() else text
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def natural_keys(text):
|
|
||||||
'''
|
|
||||||
alist.sort(key=natural_keys) sorts in human order
|
|
||||||
http://nedbatchelder.com/blog/200712/human_sorting.html
|
|
||||||
(See Toothy's implementation in the comments)
|
|
||||||
'''
|
|
||||||
return [ Registry.__atoi(c) for c in re.split('(\d+)', text) ]
|
|
||||||
|
|
||||||
|
|
||||||
def send(self, path, method="GET"):
|
def send(self, path, method="GET"):
|
||||||
@@ -139,7 +142,7 @@ class Registry:
|
|||||||
return []
|
return []
|
||||||
|
|
||||||
if tags_list != None:
|
if tags_list != None:
|
||||||
tags_list.sort(key=Registry.natural_keys)
|
tags_list.sort(key=natural_keys)
|
||||||
|
|
||||||
return tags_list
|
return tags_list
|
||||||
|
|
||||||
@@ -181,6 +184,7 @@ class Registry:
|
|||||||
print "done"
|
print "done"
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
# this function is not used and thus not tested
|
||||||
def delete_tag_layer(self, image_name, layer_digest, dry_run):
|
def delete_tag_layer(self, image_name, layer_digest, dry_run):
|
||||||
if dry_run:
|
if dry_run:
|
||||||
print 'would delete layer {0}'.format(layer_digest)
|
print 'would delete layer {0}'.format(layer_digest)
|
||||||
@@ -433,7 +437,7 @@ def main_loop(args):
|
|||||||
if args.delete_all:
|
if args.delete_all:
|
||||||
tags_list_to_delete = list(tags_list)
|
tags_list_to_delete = list(tags_list)
|
||||||
else:
|
else:
|
||||||
tags_list_to_delete = sorted(tags_list, key=Registry.natural_keys)[:-keep_last_versions]
|
tags_list_to_delete = sorted(tags_list, key=natural_keys)[:-keep_last_versions]
|
||||||
|
|
||||||
delete_tags(
|
delete_tags(
|
||||||
registry, image_name, args.dry_run,
|
registry, image_name, args.dry_run,
|
||||||
|
|||||||
Reference in New Issue
Block a user