Improve the upgrade
command, to allow better automation
the goal being, to add/enable a new upgrade via UI, then let overnight script run the "enabled" upgrade if it exists
This commit is contained in:
parent
6279d3d21c
commit
ea2dccd237
|
@ -1021,7 +1021,7 @@ class Upgrade(Subcommand):
|
|||
description = __doc__.strip()
|
||||
|
||||
def add_parser_args(self, parser):
|
||||
parser.add_argument('description',
|
||||
parser.add_argument('--description',
|
||||
help="Description for the new/matched upgrade.")
|
||||
parser.add_argument('--enabled', action='store_true', default=True,
|
||||
help="Indicate the enabled flag should be ON for the new/matched upgrade. "
|
||||
|
@ -1051,16 +1051,7 @@ class Upgrade(Subcommand):
|
|||
model = self.model
|
||||
user = self.get_runas_user(session)
|
||||
|
||||
upgrades = session.query(model.Upgrade)\
|
||||
.filter(model.Upgrade.description == args.description)
|
||||
|
||||
if args.create:
|
||||
count = upgrades.count()
|
||||
if count:
|
||||
self.stderr.write("{} upgrades already exists with description: {}\n".format(count, args.description))
|
||||
session.rollback()
|
||||
session.close()
|
||||
sys.exit(1)
|
||||
upgrade = model.Upgrade()
|
||||
upgrade.description = args.description
|
||||
upgrade.created = make_utc()
|
||||
|
@ -1071,16 +1062,19 @@ class Upgrade(Subcommand):
|
|||
log.info("user '{}' created new upgrade: {}".format(user.username, upgrade))
|
||||
|
||||
else:
|
||||
query = upgrades.filter(model.Upgrade.enabled == args.enabled)
|
||||
upgrades = session.query(model.Upgrade)\
|
||||
.filter(model.Upgrade.enabled == args.enabled)
|
||||
if args.description:
|
||||
upgrades = upgrades.filter(model.Upgrade.description == args.description)
|
||||
try:
|
||||
upgrade = query.one()
|
||||
upgrade = upgrades.one()
|
||||
except NoResultFound:
|
||||
self.stderr.write("no upgrade found matching description: {}\n".format(args.description))
|
||||
self.stderr.write("no matching upgrade found\n")
|
||||
session.rollback()
|
||||
session.close()
|
||||
sys.exit(1)
|
||||
except MultipleResultsFound:
|
||||
self.stderr.write("found {} matching upgrades for description: {}\n".format(query.count(), args.description))
|
||||
self.stderr.write("found {} matching upgrades\n".format(upgrades.count()))
|
||||
session.rollback()
|
||||
session.close()
|
||||
sys.exit(1)
|
||||
|
|
Loading…
Reference in a new issue