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()
|
description = __doc__.strip()
|
||||||
|
|
||||||
def add_parser_args(self, parser):
|
def add_parser_args(self, parser):
|
||||||
parser.add_argument('description',
|
parser.add_argument('--description',
|
||||||
help="Description for the new/matched upgrade.")
|
help="Description for the new/matched upgrade.")
|
||||||
parser.add_argument('--enabled', action='store_true', default=True,
|
parser.add_argument('--enabled', action='store_true', default=True,
|
||||||
help="Indicate the enabled flag should be ON for the new/matched upgrade. "
|
help="Indicate the enabled flag should be ON for the new/matched upgrade. "
|
||||||
|
@ -1051,16 +1051,7 @@ class Upgrade(Subcommand):
|
||||||
model = self.model
|
model = self.model
|
||||||
user = self.get_runas_user(session)
|
user = self.get_runas_user(session)
|
||||||
|
|
||||||
upgrades = session.query(model.Upgrade)\
|
|
||||||
.filter(model.Upgrade.description == args.description)
|
|
||||||
|
|
||||||
if args.create:
|
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 = model.Upgrade()
|
||||||
upgrade.description = args.description
|
upgrade.description = args.description
|
||||||
upgrade.created = make_utc()
|
upgrade.created = make_utc()
|
||||||
|
@ -1071,16 +1062,19 @@ class Upgrade(Subcommand):
|
||||||
log.info("user '{}' created new upgrade: {}".format(user.username, upgrade))
|
log.info("user '{}' created new upgrade: {}".format(user.username, upgrade))
|
||||||
|
|
||||||
else:
|
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:
|
try:
|
||||||
upgrade = query.one()
|
upgrade = upgrades.one()
|
||||||
except NoResultFound:
|
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.rollback()
|
||||||
session.close()
|
session.close()
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
except MultipleResultsFound:
|
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.rollback()
|
||||||
session.close()
|
session.close()
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
Loading…
Reference in a new issue