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
					
				
					 1 changed files with 8 additions and 14 deletions
				
			
		| 
						 | 
				
			
			@ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue