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()
 | 
					    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…
	
	Add table
		Add a link
		
	
		Reference in a new issue