def configure(self): BaseCommand.configure(self) set_userregion(self.config, self.args.get('userregion')) set_userregion(self.config, os.getenv('EUCA_REGION')) # Get creds add_bundle_creds(self.args, self.config) if not self.args.get('cert'): raise ArgumentError( 'missing certificate; please supply one with -c') self.log.debug('certificate: %s', self.args['cert']) if not self.args.get('privatekey'): raise ArgumentError( 'missing private key; please supply one with -k') self.log.debug('private key: %s', self.args['privatekey']) if not self.args.get('ec2cert'): raise ArgumentError( 'missing cloud certificate; please supply one with --ec2cert') self.log.debug('cloud certificate: %s', self.args['ec2cert']) if not self.args.get('user'): raise ArgumentError( 'missing account ID; please supply one with --user') self.log.debug('account ID: %s', self.args['user']) if (self.args.get('destination') and os.path.exists(self.args['destination']) and not os.path.isdir(self.args['destination'])): raise ArgumentError("argument -d/--destination: '{0}' is not a " "directory".format(self.args['destination']))
def configure(self): BaseCommand.configure(self) set_userregion(self.config, self.args.get('userregion')) set_userregion(self.config, os.getenv('EUCA_REGION')) # Get creds add_bundle_creds(self.args, self.config) if not self.args.get('cert'): raise ArgumentError( 'missing certificate; please supply one with -c') self.log.debug('certificate: %s', self.args['cert']) if not self.args.get('privatekey'): raise ArgumentError( 'missing private key; please supply one with -k') self.log.debug('private key: %s', self.args['privatekey']) if not self.args.get('ec2cert'): raise ArgumentError( 'missing cloud certificate; please supply one with --ec2cert') self.log.debug('cloud certificate: %s', self.args['ec2cert']) if not self.args.get('user'): raise ArgumentError( 'missing account ID; please supply one with --user') self.log.debug('account ID: %s', self.args['user']) if (self.args.get('destination') and os.path.exists(self.args['destination']) and not os.path.isdir(self.args['destination'])): raise ArgumentError("argument -d/--destination: '{0}' is not a " "directory".format(self.args['destination']))
def configure(self): # self.args gets highest precedence for self.endpoint and user/region self.process_url(self.args.get('url')) set_userregion(self.config, self.args.get('userregion')) # Shell-style config file given at the CLI # Deprecated; should be removed in 3.2 if os.path.isfile(self.args.get('shell_configfile', '')): msg = 'argument --config is deprecated' self.log.warn(msg) print >> sys.stderr, 'warning:', msg config = _parse_shell_configfile(self.args['shell_configfile']) self.process_url(config.get(self.URL_ENVVAR)) if self.URL_ENVVAR in config: self.process_url(config[self.URL_ENVVAR]) # Environment set_userregion(self.config, os.getenv(self.REGION_ENVVAR)) self.process_url(os.getenv(self.URL_ENVVAR)) # Regular config file self.process_url(self.config.get_region_option(self.NAME + '-url')) # User, systemwide shell-style config files # Deprecated; should be removed in 3.2 for configfile_name in ('~/.eucarc', '~/.eucarc/eucarc'): configfile_name = os.path.expandvars(configfile_name) configfile_name = os.path.expanduser(configfile_name) if os.path.isfile(configfile_name): config = _parse_shell_configfile(configfile_name) if self.URL_ENVVAR in config: self.process_url(config[self.URL_ENVVAR]) # Configure request timeouts and retry handlers if self.max_retries is None: config_max_retries = self.config.get_global_option('max-retries') if config_max_retries is not None: self.max_retries = int(config_max_retries) else: self.max_retries = self.MAX_RETRIES if self.timeout is None: config_timeout = self.config.get_global_option('timeout') if config_timeout is not None: self.timeout = float(config_timeout) else: self.timeout = self.TIMEOUT # SSL cert verification is opt-in self.session_args['verify'] = self.config.get_region_option_bool( 'verify-ssl', default=False) # Ensure everything is okay and finish up self.validate_config() if self.auth is not None: self.auth.configure()
def configure(self): # self.args gets highest precedence for self.endpoint and user/region self.process_url(self.args.get('url')) set_userregion(self.config, self.args.get('userregion')) # Shell-style config file given at the CLI # Deprecated; should be removed in 3.2 if os.path.isfile(self.args.get('shell_configfile', '')): msg = 'argument --config is deprecated' self.log.warn(msg) print >> sys.stderr, 'warning:', msg config = _parse_shell_configfile(self.args['shell_configfile']) self.process_url(config.get(self.URL_ENVVAR)) if self.URL_ENVVAR in config: self.process_url(config[self.URL_ENVVAR]) # Environment set_userregion(self.config, os.getenv(self.REGION_ENVVAR)) self.process_url(os.getenv(self.URL_ENVVAR)) # Regular config file self.process_url(self.config.get_region_option(self.NAME + '-url')) # User, systemwide shell-style config files # Deprecated; should be removed in 3.2 for configfile_name in ('~/.eucarc', '~/.eucarc/eucarc'): configfile_name = os.path.expandvars(configfile_name) configfile_name = os.path.expanduser(configfile_name) if os.path.isfile(configfile_name): config = _parse_shell_configfile(configfile_name) if self.URL_ENVVAR in config: self.process_url(config[self.URL_ENVVAR]) # Configure request timeouts and retry handlers if self.max_retries is None: config_max_retries = self.config.get_global_option('max-retries') if config_max_retries is not None: self.max_retries = int(config_max_retries) else: self.max_retries = self.MAX_RETRIES if self.timeout is None: config_timeout = self.config.get_global_option('timeout') if config_timeout is not None: self.timeout = float(config_timeout) else: self.timeout = self.TIMEOUT # SSL cert verification is opt-in self.session_args['verify'] = self.config.get_region_option_bool( 'verify-ssl', default=False) # Ensure everything is okay and finish up self.validate_config() if self.auth is not None: self.auth.configure()
def configure(self): BaseCommand.configure(self) set_userregion(self.config, self.args.get('userregion')) set_userregion(self.config, os.getenv('EUCA_REGION')) if not self.args.get('privatekey'): config_privatekey = self.config.get_user_option('private-key') if self.args.get('userregion'): self.args['privatekey'] = config_privatekey elif 'EC2_PRIVATE_KEY' in os.environ: self.args['privatekey'] = os.getenv('EC2_PRIVATE_KEY') elif config_privatekey: self.args['privatekey'] = config_privatekey else: raise ArgumentError( 'missing private key; please supply one with -k') self.args['privatekey'] = os.path.expanduser( os.path.expandvars(self.args['privatekey'])) if not os.path.exists(self.args['privatekey']): raise ArgumentError("private key file '{0}' does not exist".format( self.args['privatekey'])) if not os.path.isfile(self.args['privatekey']): raise ArgumentError("private key file '{0}' is not a file".format( self.args['privatekey']))
def configure(self): BaseCommand.configure(self) set_userregion(self.config, self.args.get('userregion')) set_userregion(self.config, os.getenv('EUCA_REGION')) if not self.args.get('privatekey'): config_privatekey = self.config.get_user_option('private-key') if self.args.get('userregion'): self.args['privatekey'] = config_privatekey elif 'EC2_PRIVATE_KEY' in os.environ: self.args['privatekey'] = os.getenv('EC2_PRIVATE_KEY') elif config_privatekey: self.args['privatekey'] = config_privatekey else: raise ArgumentError( 'missing private key; please supply one with -k') self.args['privatekey'] = os.path.expanduser(os.path.expandvars( self.args['privatekey'])) if not os.path.exists(self.args['privatekey']): raise ArgumentError("private key file '{0}' does not exist" .format(self.args['privatekey'])) if not os.path.isfile(self.args['privatekey']): raise ArgumentError("private key file '{0}' is not a file" .format(self.args['privatekey']))
def configure(self): EuStoreRequest.configure(self) set_userregion(self.config, self.args.get('userregion')) if self.args.get('kernel_type'): # Use it and complain self.args['hypervisor'] = self.args['kernel_type'] msg = ('argument -k/--kernel-type is deprecated; use --hypervisor ' 'instead') self.log.warn(msg) print >> sys.stderr, 'warning:', msg # Get bundle creds first add_bundle_creds(self.args, self.config) if not self.args.get('cert'): raise ArgumentError( 'missing certificate; please supply one with -c') self.log.debug('certificate: %s', self.args['cert']) if not self.args.get('privatekey'): raise ArgumentError( 'missing private key; please supply one with --privatekey') self.log.debug('private key: %s', self.args['privatekey']) if not self.args.get('ec2cert'): raise ArgumentError( 'missing cloud certificate; please supply one with --ec2cert') self.log.debug('cloud certificate: %s', self.args['ec2cert']) if not self.args.get('user'): raise ArgumentError( 'missing account ID; please supply one with --user') self.log.debug('account ID: %s', self.args['user']) # Set up the web services -- we're going to use them a lot query_auth = QuerySigV2Auth(self.config, key_id=self.args.get('key_id'), secret_key=self.args.get('secret_key')) self.__euare = Euare(self.config, loglevel=self.log.level, auth=copy.copy(query_auth), url=self.args.get('iam_url')) self.log.debug('configuring euare service') self.__euare.configure() self.__eucalyptus = Eucalyptus(self.config, loglevel=self.log.level, auth=copy.copy(query_auth), url=self.args.get('ec2_url')) self.log.debug('configuring eucalyptus service') self.__eucalyptus.configure() s3_auth = S3RestAuth(self.config, key_id=self.args.get('key_id'), secret_key=self.args.get('secret_key')) self.__walrus = Walrus(self.config, loglevel=self.log.level, auth=s3_auth, url=self.args.get('s3_url')) self.__walrus.configure() # Check other args next if self.args.get('tarball'): if not self.args.get('architecture'): raise ArgumentError('argument -a/--architecture is required ' 'when -t/--tarball is used') if not self.args.get('hypervisor'): raise ArgumentError('argument --hypervisor is required when ' '-t/--tarball is used') self.args['tarball'] = os.path.expanduser(os.path.expandvars( self.args['tarball'])) if not os.path.exists(self.args['tarball']): raise ArgumentError("tarball file '{0}' does not exist" .format(self.args['tarball'])) if not os.path.isfile(self.args['tarball']): raise ArgumentError("tarball file '{0}' is not a file" .format(self.args['tarball'])) if self.args.get('kernel') and not self.args.get('ramdisk'): raise ArgumentError('argument --kernel: --ramdisk is required') if self.args.get('ramdisk') and not self.args.get('kernel'): raise ArgumentError('argument --ramdisk: --kernel is required') if self.args.get('image') and self.args.get('architecture'): self.log.warn("downloaded image's architecture may be overridden")