def __init__(self, **kwargs): self.logger = logging.getLogger('gbdxtools') self.logger.setLevel(logging.ERROR) self.console_handler = logging.StreamHandler() self.console_handler.setLevel(logging.ERROR) self.formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s') self.console_handler.setFormatter(self.formatter) self.logger.addHandler(self.console_handler) self.logger.info('Logger initialized') if 'host' in kwargs: self.root_url = 'https://%s' % kwargs.get('host') try: if (kwargs.get('username') and kwargs.get('password') and kwargs.get('client_id') and kwargs.get('client_secret')): self.gbdx_connection = gbdx_auth.session_from_kwargs(**kwargs) elif kwargs.get('gbdx_connection'): self.gbdx_connection = kwargs.get('gbdx_connection') elif self.gbdx_connection is None: # This will throw an exception if your .ini file is not set properly self.gbdx_connection = gbdx_auth.get_session( kwargs.get('config_file')) except Exception as err: print(err) if self.gbdx_connection is not None: self.gbdx_connection.mount( VIRTUAL_IPE_URL, HTTPAdapter( max_retries=5)) #status_forcelist=[500, 502, 504])) self.gbdx_futures_session = FuturesSession( session=self.gbdx_connection, max_workers=64)
def __init__(self, **kwargs): self.logger = logging.getLogger('gbdxtools') self.logger.setLevel(logging.ERROR) self.console_handler = logging.StreamHandler() self.console_handler.setLevel(logging.ERROR) self.formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s') self.console_handler.setFormatter(self.formatter) self.logger.addHandler(self.console_handler) self.logger.info('Logger initialized') if 'host' in kwargs: self.root_url = 'https://%s' % kwargs.get('host') try: if (kwargs.get('username') and kwargs.get('password') and kwargs.get('client_id') and kwargs.get('client_secret')): self.gbdx_connection = gbdx_auth.session_from_kwargs(**kwargs) elif kwargs.get('gbdx_connection'): self.gbdx_connection = kwargs.get('gbdx_connection') elif self.gbdx_connection is None: # This will throw an exception if your .ini file is not set properly self.gbdx_connection = gbdx_auth.get_session( kwargs.get('config_file')) except Exception as err: print(err)
def test_session_from_kwargs_without_client_creds(self): username = '******' password = '******' gbdx = gbdx_auth.session_from_kwargs(username=username, password=password) token = 'dumdumdum' self.assertEqual(token, gbdx.token['access_token'])
def __init__(self, **kwargs): self.logger = logging.getLogger('gbdxtools') self.logger.setLevel(logging.ERROR) self.console_handler = logging.StreamHandler() self.console_handler.setLevel(logging.ERROR) self.formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') self.console_handler.setFormatter(self.formatter) self.logger.addHandler(self.console_handler) self.logger.info('Logger initialized') if 'host' in kwargs: self.root_url = 'https://%s' % kwargs.get('host') if (kwargs.get('username') and kwargs.get('password')): self.gbdx_connection = gbdx_auth.session_from_kwargs(**kwargs) elif kwargs.get('gbdx_connection'): self.gbdx_connection = kwargs.get('gbdx_connection') elif self.gbdx_connection is None: # This will throw an exception if your .ini file is not set properly self.gbdx_connection = gbdx_auth.get_session(kwargs.get('config_file')) def expire_token(r, *args, **kw): """ Requests a new token if 401, retries request, mainly for auth v2 migration :param r: :param args: :param kw: :return: """ if r.status_code == 401: try: # remove hooks so it doesn't get into infinite loop r.request.hooks = None # expire the token gbdx_auth.expire_token(token_to_expire=self.gbdx_connection.token, config_file=kwargs.get('config_file')) # re-init the session self.gbdx_connection = gbdx_auth.get_session(kwargs.get('config_file')) # make original request, triggers new token request first return self.gbdx_connection.request(method=r.request.method, url=r.request.url) except Exception as e: r.request.hooks = None print("Error expiring token from session, Reason {}".format(e.message)) if self.gbdx_connection is not None: self.gbdx_connection.hooks['response'].append(expire_token) # status_forcelist=[500, 502, 504])) self.gbdx_connection.mount(VIRTUAL_RDA_URL, HTTPAdapter(max_retries=5)) self.gbdx_futures_session = FuturesSession(session=self.gbdx_connection, max_workers=64) if 'GBDX_USER' in os.environ: header = {'User-Agent': os.environ['GBDX_USER']} self.gbdx_futures_session.headers.update(header) self.gbdx_connection.headers.update(header)
def __init__(self, **kwargs): self.logger = logging.getLogger('gbdxtools') self.logger.setLevel(logging.ERROR) self.console_handler = logging.StreamHandler() self.console_handler.setLevel(logging.ERROR) self.formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') self.console_handler.setFormatter(self.formatter) self.logger.addHandler(self.console_handler) self.logger.info('Logger initialized') if 'host' in kwargs: self.root_url = 'https://%s' % kwargs.get('host') if (kwargs.get('username') and kwargs.get('password')): self.gbdx_connection = gbdx_auth.session_from_kwargs(**kwargs) elif kwargs.get('gbdx_connection'): self.gbdx_connection = kwargs.get('gbdx_connection') elif self.gbdx_connection is None: # This will throw an exception if your .ini file is not set properly self.gbdx_connection = gbdx_auth.get_session(kwargs.get('config_file')) def expire_token(r, *args, **kw): """ Requests a new token if 401, retries request, mainly for auth v2 migration :param r: :param args: :param kw: :return: """ if r.status_code == 401: try: # remove hooks so it doesn't get into infinite loop r.request.hooks = None # expire the token gbdx_auth.expire_token(token_to_expire=self.gbdx_connection.token, config_file=kwargs.get('config_file')) # re-init the session self.gbdx_connection = gbdx_auth.get_session(kwargs.get('config_file')) # make original request, triggers new token request first return self.gbdx_connection.request(method=r.request.method, url=r.request.url) except Exception as e: r.request.hooks = None print("Error expiring token from session, Reason {}".format(e)) if self.gbdx_connection is not None: self.gbdx_connection.hooks['response'].append(expire_token) # status_forcelist=[500, 502, 504])) self.gbdx_connection.mount(VIRTUAL_RDA_URL, HTTPAdapter(max_retries=5)) self.gbdx_futures_session = FuturesSession(session=self.gbdx_connection, max_workers=64) if 'GBDX_USER' in os.environ: header = {'User-Agent': os.environ['GBDX_USER']} self.gbdx_futures_session.headers.update(header) self.gbdx_connection.headers.update(header)
def test_session_from_kwargs_invalid_user_pass_without_client_creds(self): username = '******' password = '******' with self.assertRaises(Exception) as e: gbdx = gbdx_auth.session_from_kwargs(username=username, password=password) self.assertEqual( str(e.exception), 'Invalid credentials passed into session_from_kwargs()')
def test_session_from_kwargs(self): username = '******' password = '******' client_id = 'dummy-client_id' client_secret = 'dummy-secret' gbdx = gbdx_auth.session_from_kwargs(username=username, password=password, client_id=client_id, client_secret=client_secret) token = 'dumdumdum' self.assertEqual(token, gbdx.token['access_token'])
def test_session_from_kwargs_invalid_user_pass(self): username = '******' password = '******' client_id = 'dummy-client_id' client_secret = 'dummy-secret' with self.assertRaises(Exception) as e: gbdx = gbdx_auth.session_from_kwargs(username=username, password=password, client_id=client_id, client_secret=client_secret) self.assertEqual( str(e.exception), 'Invalid credentials passed into session_from_kwargs()')
def __init__(self, **kwargs): host = kwargs.get('host') if kwargs.get('host') else 'geobigdata.io' self.root_url = 'https://%s' % host if (kwargs.get('username') and kwargs.get('password') and kwargs.get('client_id') and kwargs.get('client_secret')): self.gbdx_connection = gbdx_auth.session_from_kwargs(**kwargs) elif kwargs.get('gbdx_connection'): # Pass in a custom gbdx connection object, for testing purposes self.gbdx_connection = kwargs.get('gbdx_connection') else: # This will throw an exception if your .ini file is not set properly self.gbdx_connection = gbdx_auth.get_session(kwargs.get('config_file')) # create a logger # for now, just log to the console. We'll replace all the 'print' statements # with at least logger.info or logger.debug statements # later, we can log to a service, file, or some other aggregator self.logger = logging.getLogger('gbdxtools') self.logger.setLevel(logging.ERROR) console_handler = logging.StreamHandler() console_handler.setLevel(logging.ERROR) formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') console_handler.setFormatter(formatter) self.logger.addHandler(console_handler) self.logger.info('Logger initialized') # create and store an instance of the GBDX s3 client self.s3 = S3(self) # create and store an instance of the GBDX Ordering Client self.ordering = Ordering(self) # create and store an instance of the GBDX Catalog Client self.catalog = Catalog(self) # create and store an instance of the GBDX Workflow Client self.workflow = Workflow(self) # create and store an instance of the Idaho Client self.idaho = Idaho(self) self.vectors = Vectors(self) self.task_registry = TaskRegistry(self) # Flag for running the workflow locally self.run_local = kwargs.get('run_local', False)
def __init__(self, **kwargs): host = kwargs.get('host') if kwargs.get('host') else 'geobigdata.io' self.root_url = 'https://%s' % host if (kwargs.get('username') and kwargs.get('password') and kwargs.get('client_id') and kwargs.get('client_secret')): self.gbdx_connection = gbdx_auth.session_from_kwargs(**kwargs) elif kwargs.get('gbdx_connection'): # Pass in a custom gbdx connection object, for testing purposes self.gbdx_connection = kwargs.get('gbdx_connection') else: # This will throw an exception if your .ini file is not set properly self.gbdx_connection = gbdx_auth.get_session( kwargs.get('config_file')) # create a logger # for now, just log to the console. We'll replace all the 'print' statements # with at least logger.info or logger.debug statements # later, we can log to a service, file, or some other aggregator self.logger = logging.getLogger('gbdxtools') self.logger.setLevel(logging.ERROR) console_handler = logging.StreamHandler() console_handler.setLevel(logging.ERROR) formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s') console_handler.setFormatter(formatter) self.logger.addHandler(console_handler) self.logger.info('Logger initialized') # create and store an instance of the GBDX s3 client self.s3 = S3(self) # create and store an instance of the GBDX Ordering Client self.ordering = Ordering(self) # create and store an instance of the GBDX Catalog Client self.catalog = Catalog(self) # create and store an instance of the GBDX Workflow Client self.workflow = Workflow(self) # create and store an instance of the Idaho Client self.idaho = Idaho(self) self.vectors = Vectors(self) self.task_registry = TaskRegistry(self)
def __init__(self, **kwargs): if (kwargs.get('username') and kwargs.get('password') and kwargs.get('client_id') and kwargs.get('client_secret')): self.gbdx_connection = gbdx_auth.session_from_kwargs(**kwargs) elif kwargs.get('gbdx_connection'): # Pass in a custom gbdx connection object, for testing purposes self.gbdx_connection = kwargs.get('gbdx_connection') else: # This will throw an exception if your .ini file is not set properly self.gbdx_connection = gbdx_auth.get_session() # create a logger # for now, just log to the console. We'll replace all the 'print' statements # with at least logger.info or logger.debug statements # later, we can log to a service, file, or some other aggregator self.logger = logging.getLogger('gbdxtools') self.logger.setLevel(logging.DEBUG) console_handler = logging.StreamHandler() console_handler.setLevel(logging.DEBUG) formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') console_handler.setFormatter(formatter) self.logger.addHandler(console_handler) self.logger.info('Logger initialized') # create and store an instance of the GBDX s3 client self.s3 = S3(self) # create and store an instance of the GBDX Ordering Client self.ordering = Ordering(self) # create and store an instance of the GBDX Catalog Client self.catalog = Catalog(self) # create and store an instance of the GBDX Workflow Client self.workflow = Workflow(self) # create and store an instance of the Idaho Client self.idaho = Idaho(self)
def __init__(self, **kwargs): self.logger = logging.getLogger('pyveda') self.logger.setLevel(logging.ERROR) self.console_handler = logging.StreamHandler() self.console_handler.setLevel(logging.ERROR) self.formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s') self.console_handler.setFormatter(self.formatter) self.logger.addHandler(self.console_handler) self.logger.info('Logger initialized') if 'host' in kwargs: self.root_url = 'https://%s' % kwargs.get('host') if (kwargs.get('username') and kwargs.get('password')): self.gbdx_connection = gbdx_auth.session_from_kwargs(**kwargs) elif kwargs.get('gbdx_connection'): self.gbdx_connection = kwargs.get('gbdx_connection') elif self.gbdx_connection is None: # This will throw an exception if your .ini file is not set properly self.gbdx_connection = gbdx_auth.get_session( kwargs.get('config_file')) # for local dev, cant use oauth2 if not kwargs.get('oauth', True): self.gbdx_connection = localhost(self.gbdx_connection) def expire_token(r, *args, **kw): """ Requests a new token if 401, retries request, mainly for auth v2 migration :param r: :param args: :param kw: :return: """ if r.status_code == 401: try: # remove hooks so it doesn't get into infinite loop r.request.hooks = None # expire the token gbdx_auth.expire_token( token_to_expire=self.gbdx_connection.token, config_file=kwargs.get('config_file')) # re-init the session self.gbdx_connection = gbdx_auth.get_session( kwargs.get('config_file')) if HOST == 'http://host.docker.internal:3002': self.gbdx_connection = localhost(self.gbdx_connection) # make original request, triggers new token request first res = self.gbdx_connection.request(method=r.request.method, url=r.request.url) # re-add the hook to refresh in the future self.gbdx_connection.hooks['response'].append(expire_token) return res except Exception as e: r.request.hooks = None print( "Error expiring token from session, Reason {}".format( e)) if self.gbdx_connection is not None: self.gbdx_connection.hooks['response'].append(expire_token)