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:
 | 
					        except UncloudException as err:
 | 
				
			||||||
            logger.error(err)
 | 
					            logger.error(err)
 | 
				
			||||||
            sys.exit(1)
 | 
					            sys.exit(1)
 | 
				
			||||||
        except etcd3.exceptions.ConnectionFailedError as err:
 | 
					 | 
				
			||||||
            logger.error("Cannot connect to etcd")
 | 
					 | 
				
			||||||
        except Exception as err:
 | 
					        except Exception as err:
 | 
				
			||||||
            logger.exception(err)
 | 
					            logger.exception(err)
 | 
				
			||||||
            sys.exit(1)
 | 
					            sys.exit(1)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,10 +10,19 @@ from uncloud.common.settings import settings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def get_otp_parser():
 | 
					def get_otp_parser():
 | 
				
			||||||
    otp_parser = argparse.ArgumentParser('otp')
 | 
					    otp_parser = argparse.ArgumentParser('otp')
 | 
				
			||||||
    otp_parser.add_argument('--name', default=settings['client']['name'])
 | 
					    try:
 | 
				
			||||||
    otp_parser.add_argument('--realm', default=settings['client']['realm'])
 | 
					        name = settings['client']['name']
 | 
				
			||||||
    otp_parser.add_argument('--seed', type=get_token, default=settings['client']['seed'],
 | 
					        realm = settings['client']['realm']
 | 
				
			||||||
                            dest='token', metavar='SEED')
 | 
					        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
 | 
					    return otp_parser
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -12,12 +12,12 @@ for component in ['user', 'host', 'image', 'network', 'vm']:
 | 
				
			||||||
    subparser.add_parser(name=parser.prog, parents=[parser])
 | 
					    subparser.add_parser(name=parser.prog, parents=[parser])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def main(**kwargs):
 | 
					def main(arguments):
 | 
				
			||||||
    if not kwargs['subcommand']:
 | 
					    if not arguments['subcommand']:
 | 
				
			||||||
        arg_parser.print_help()
 | 
					        arg_parser.print_help()
 | 
				
			||||||
    else:
 | 
					    else:
 | 
				
			||||||
        name = kwargs.pop('subcommand')
 | 
					        name = arguments.pop('subcommand')
 | 
				
			||||||
        kwargs.pop('debug')
 | 
					        arguments.pop('debug')
 | 
				
			||||||
        mod = importlib.import_module('uncloud.cli.{}'.format(name))
 | 
					        mod = importlib.import_module('uncloud.cli.{}'.format(name))
 | 
				
			||||||
        _main = getattr(mod, 'main')
 | 
					        _main = getattr(mod, 'main')
 | 
				
			||||||
        _main(**kwargs)
 | 
					        _main(**arguments)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -99,12 +99,10 @@ class Settings(object):
 | 
				
			||||||
    def read_config_file_values(self, config_file):
 | 
					    def read_config_file_values(self, config_file):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            # Trying to read configuration file
 | 
					            # 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)
 | 
					                self.config_parser.read_file(config_file_handle)
 | 
				
			||||||
        except FileNotFoundError:
 | 
					        except FileNotFoundError:
 | 
				
			||||||
            sys.exit(
 | 
					            sys.exit('Configuration file {} not found!'.format(config_file))
 | 
				
			||||||
                'Configuration file {} not found!'.format(config_file)
 | 
					 | 
				
			||||||
            )
 | 
					 | 
				
			||||||
        except Exception as err:
 | 
					        except Exception as err:
 | 
				
			||||||
            logger.exception(err)
 | 
					            logger.exception(err)
 | 
				
			||||||
            sys.exit('Error occurred while reading configuration file')
 | 
					            sys.exit('Error occurred while reading configuration file')
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue