| |
@@ -4,13 +4,17 @@
|
| |
import re
|
| |
import sys
|
| |
import argparse
|
| |
- import ConfigParser
|
| |
import requests
|
| |
import json
|
| |
from lxml import etree
|
| |
|
| |
from pprint import pprint
|
| |
|
| |
+ try:
|
| |
+ import configparser
|
| |
+ except ImportError:
|
| |
+ import ConfigParser as configparser
|
| |
+
|
| |
CONFIGFILE = '/etc/taskotron_base_images/config.ini'
|
| |
# Defaults
|
| |
IMGFAC_BASE_URL = "http://127.0.0.1:8075/imagefactory"
|
| |
@@ -19,7 +23,7 @@
|
| |
global IMGFAC_BASE_URL
|
| |
|
| |
if os.path.isfile(configfile):
|
| |
- config = ConfigParser.SafeConfigParser()
|
| |
+ config = configparser.SafeConfigParser()
|
| |
config.read(configfile)
|
| |
config = dict(config.items('default'))
|
| |
|
| |
@@ -46,11 +50,11 @@
|
| |
if data['status'] != "FAILED":
|
| |
continue
|
| |
|
| |
- print "Removing: %s" % img['base_image']['href']
|
| |
+ print("Removing: %s" % img['base_image']['href'])
|
| |
if not dryrun:
|
| |
r = requests.delete(img['base_image']['href'])
|
| |
if not r.ok:
|
| |
- print "Failed to delete: %s" % img['base_image']['href']
|
| |
+ print("Failed to delete: %s" % img['base_image']['href'])
|
| |
continue
|
| |
pruned_images.append(img['base_image']['href'])
|
| |
|
| |
@@ -114,11 +118,11 @@
|
| |
else:
|
| |
to_prune = value
|
| |
for image in to_prune:
|
| |
- print "Removing: %s" % image['href']
|
| |
+ print("Removing: %s" % image['href'])
|
| |
if not dryrun:
|
| |
r = requests.delete(image['href'])
|
| |
if not r.ok:
|
| |
- print "Failed to delete: %s" % image['href']
|
| |
+ print("Failed to delete: %s" % image['href'])
|
| |
continue
|
| |
pruned_images.append(image['href'])
|
| |
|
| |
@@ -135,14 +139,14 @@
|
| |
for f in filenames:
|
| |
filename = os.path.split(f)[-1]
|
| |
if not re_filename.match(filename):
|
| |
- print "Skipping %r; Unknown filename format" % f
|
| |
+ print("Skipping %r; Unknown filename format" % f)
|
| |
continue
|
| |
|
| |
without_extension = '.'.join(filename.split('.')[:-1])
|
| |
try:
|
| |
timestamp, os_name, release, flavor, arch = without_extension.split('-')
|
| |
except ValueError:
|
| |
- print "Skipping %r; Unknown filename format" % f
|
| |
+ print("Skipping %r; Unknown filename format" % f)
|
| |
continue
|
| |
|
| |
relevant_files.setdefault((os_name, release, flavor, arch), [])
|
| |
@@ -154,10 +158,10 @@
|
| |
to_remove[key] = relevant_files[key][keep:]
|
| |
|
| |
if verbose or dryrun:
|
| |
- print "Relevant files:"
|
| |
+ print("Relevant files:")
|
| |
pprint(relevant_files)
|
| |
print
|
| |
- print "Files to be removed:"
|
| |
+ print("Files to be removed:")
|
| |
pprint(to_remove)
|
| |
print
|
| |
|
| |
@@ -165,10 +169,10 @@
|
| |
for files in to_remove.itervalues():
|
| |
for fname in files:
|
| |
try:
|
| |
- print "Removing: %s" % os.path.join(dirname, fname)
|
| |
+ print("Removing: %s" % os.path.join(dirname, fname))
|
| |
os.remove(os.path.join(dirname, fname))
|
| |
except OSError:
|
| |
- print "Could not remove %s" % os.path.join(dirname, fname)
|
| |
+ print("Could not remove %s" % os.path.join(dirname, fname))
|
| |
|
| |
|
| |
|
| |
^^