def get_oauth2_token(self): # token overrides token_file # either in kwargs overrides cli args # either in cli args overrides conf key_names = ['token', 'token_file'] value = None found_key = None for key in key_names: value = self.kwargs.get(key) if value is not None: found_key = key break if value is None: for key in key_names: value = getattr(self.args, key, None) if value is not None: found_key = key break if value is None: for key in key_names: try: value = self.scp.get(self.conf_section, key) except configparser.Error: pass else: found_key = key break if value is None: instance_token_file = utils.get_instance_token_file_name( self.conf_section) if os.path.exists(instance_token_file): found_key = 'token_file' value = instance_token_file # For token_file, read the file if found_key == 'token_file': token_file = value try: with open(token_file, 'r') as token_fd: value = token_fd.read().strip() except IOError as ex: logger.error("exception caught while reading %s: %r", token_file, ex) return value
def login(self, token=None, username=None, password=None): if self.os.use_kerberos: raise OsbsValidationException( "can't use login when using kerberos") if not token: if username: self.os.username = username else: try: self.os.username = raw_input("Username: "******"Username: "******"token is not valid") raise token_file = utils.get_instance_token_file_name( self.os_conf.conf_section) token_file_dir = os.path.dirname(token_file) if not os.path.exists(token_file_dir): os.makedirs(token_file_dir) # Inspired by http://stackoverflow.com/a/15015748/5998718 # For security, remove file with potentially elevated mode if os.path.exists(token_file): os.remove(token_file) # Open file descriptor fdesc = os.open(token_file, os.O_WRONLY | os.O_CREAT | os.O_EXCL, stat.S_IRUSR | stat.S_IWUSR) with os.fdopen(fdesc, 'w') as f: f.write(token + '\n')
def get_oauth2_token(self): # token overrides token_file # either in kwargs overrides cli args # either in cli args overrides conf key_names = ['token', 'token_file'] value = None found_key = None for key in key_names: value = self.kwargs.get(key) if value is not None: found_key = key break if value is None: for key in key_names: value = getattr(self.args, key, None) if value is not None: found_key = key break if value is None: for key in key_names: try: value = self.scp.get(self.conf_section, key) except configparser.Error: pass else: found_key = key break if value is None: instance_token_file = utils.get_instance_token_file_name(self.conf_section) if os.path.exists(instance_token_file): found_key = 'token_file' value = instance_token_file # For token_file, read the file if found_key == 'token_file': token_file = value try: with open(token_file, 'r') as token_fd: value = token_fd.read().strip() except IOError as ex: logger.error("exception caught while reading %s: %r", token_file, ex) return value
def login(self, token=None, username=None, password=None): if self.os.use_kerberos: raise OsbsValidationException("can't use login when using kerberos") if not token: if username: self.os.username = username else: try: self.os.username = raw_input("Username: "******"Username: "******"token is not valid") raise token_file = utils.get_instance_token_file_name(self.os_conf.conf_section) token_file_dir = os.path.dirname(token_file) if not os.path.exists(token_file_dir): os.makedirs(token_file_dir) # Inspired by http://stackoverflow.com/a/15015748/5998718 # For security, remove file with potentially elevated mode if os.path.exists(token_file): os.remove(token_file) # Open file descriptor fdesc = os.open(token_file, os.O_WRONLY | os.O_CREAT | os.O_EXCL, stat.S_IRUSR | stat.S_IWUSR) with os.fdopen(fdesc, 'w') as f: f.write(token + '\n')
def login(self, token): token_file = utils.get_instance_token_file_name(self.os_conf.conf_section) token_file_dir = os.path.dirname(token_file) if not os.path.exists(token_file_dir): os.makedirs(token_file_dir) # Inspired by http://stackoverflow.com/a/15015748/5998718 # For security, remove file with potentially elevated mode if os.path.exists(token_file): os.remove(token_file) # Open file descriptor fdesc = os.open(token_file, os.O_WRONLY | os.O_CREAT | os.O_EXCL, stat.S_IRUSR | stat.S_IWUSR) with os.fdopen(fdesc, 'w') as f: f.write(token)
def test_get_instance_token_file_name(): expected = os.path.join(os.path.expanduser('~'), '.osbs', 'spam.token') assert get_instance_token_file_name('spam') == expected