forked from uncloud/uncloud
		
	Do not break if client section/or OTP creds missing from conf file
This commit is contained in:
		
					parent
					
						
							
								e91fd9e24a
							
						
					
				
			
			
				commit
				
					
						00d876aea1
					
				
			
		
					 4 changed files with 20 additions and 15 deletions
				
			
		| 
						 | 
				
			
			@ -73,8 +73,6 @@ if __name__ == '__main__':
 | 
			
		|||
        except UncloudException as err:
 | 
			
		||||
            logger.error(err)
 | 
			
		||||
            sys.exit(1)
 | 
			
		||||
        except etcd3.exceptions.ConnectionFailedError as err:
 | 
			
		||||
            logger.error("Cannot connect to etcd")
 | 
			
		||||
        except Exception as err:
 | 
			
		||||
            logger.exception(err)
 | 
			
		||||
            sys.exit(1)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,10 +10,19 @@ from uncloud.common.settings import settings
 | 
			
		|||
 | 
			
		||||
def get_otp_parser():
 | 
			
		||||
    otp_parser = argparse.ArgumentParser('otp')
 | 
			
		||||
    otp_parser.add_argument('--name', default=settings['client']['name'])
 | 
			
		||||
    otp_parser.add_argument('--realm', default=settings['client']['realm'])
 | 
			
		||||
    otp_parser.add_argument('--seed', type=get_token, default=settings['client']['seed'],
 | 
			
		||||
                            dest='token', metavar='SEED')
 | 
			
		||||
    try:
 | 
			
		||||
        name = settings['client']['name']
 | 
			
		||||
        realm = settings['client']['realm']
 | 
			
		||||
        seed = settings['client']['seed']
 | 
			
		||||
    except Exception:
 | 
			
		||||
        otp_parser.add_argument('--name', required=True)
 | 
			
		||||
        otp_parser.add_argument('--realm', required=True)
 | 
			
		||||
        otp_parser.add_argument('--seed', required=True, type=get_token, dest='token', metavar='SEED')
 | 
			
		||||
    else:
 | 
			
		||||
        otp_parser.add_argument('--name', default=name)
 | 
			
		||||
        otp_parser.add_argument('--realm', default=realm)
 | 
			
		||||
        otp_parser.add_argument('--seed', default=seed, type=get_token, dest='token', metavar='SEED')
 | 
			
		||||
 | 
			
		||||
    return otp_parser
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,12 +12,12 @@ for component in ['user', 'host', 'image', 'network', 'vm']:
 | 
			
		|||
    subparser.add_parser(name=parser.prog, parents=[parser])
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def main(**kwargs):
 | 
			
		||||
    if not kwargs['subcommand']:
 | 
			
		||||
def main(arguments):
 | 
			
		||||
    if not arguments['subcommand']:
 | 
			
		||||
        arg_parser.print_help()
 | 
			
		||||
    else:
 | 
			
		||||
        name = kwargs.pop('subcommand')
 | 
			
		||||
        kwargs.pop('debug')
 | 
			
		||||
        name = arguments.pop('subcommand')
 | 
			
		||||
        arguments.pop('debug')
 | 
			
		||||
        mod = importlib.import_module('uncloud.cli.{}'.format(name))
 | 
			
		||||
        _main = getattr(mod, 'main')
 | 
			
		||||
        _main(**kwargs)
 | 
			
		||||
        _main(**arguments)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -99,12 +99,10 @@ class Settings(object):
 | 
			
		|||
    def read_config_file_values(self, config_file):
 | 
			
		||||
        try:
 | 
			
		||||
            # Trying to read configuration file
 | 
			
		||||
            with open(config_file, 'r') as config_file_handle:
 | 
			
		||||
            with open(config_file) as config_file_handle:
 | 
			
		||||
                self.config_parser.read_file(config_file_handle)
 | 
			
		||||
        except FileNotFoundError:
 | 
			
		||||
            sys.exit(
 | 
			
		||||
                'Configuration file {} not found!'.format(config_file)
 | 
			
		||||
            )
 | 
			
		||||
            sys.exit('Configuration file {} not found!'.format(config_file))
 | 
			
		||||
        except Exception as err:
 | 
			
		||||
            logger.exception(err)
 | 
			
		||||
            sys.exit('Error occurred while reading configuration file')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue