def __init__(self, subject, resource_id=DEFAULT_RESOURCE_ID, host=None, agent=None): """ Instance of a YoucatClient :param subject: the subject performing the action :type cadcutils.auth.Subject :param resource_id: the resource ID of the service :param host: Host for the caom2repo service :param agent: The name of the agent (to be used in server logging) """ self.logger = logging.getLogger('YoucatClient') self.resource_id = resource_id self.host = host self._subject = subject if agent is None: agent = "cadc-tap-client/{}".format(version.version) self.agent = agent self._tap_client = net.BaseWsClient(resource_id, subject, agent, retry=True, host=self.host)
def __init__(self, subject, logLevel=logging.INFO, resource_id=DEFAULT_RESOURCE_ID, host=None, agent=None): """ Instance of a CAOM2RepoClient :param subject: the subject performing the action :type cadcutils.auth.Subject :param server: Host server for the caom2repo service """ self.level = logLevel logging.basicConfig( format='%(asctime)s %(process)d %(levelname)-8s %(name)-12s ' + '%(funcName)s %(message)s', level=logLevel, stream=sys.stdout) self.logger = logging.getLogger('CAOM2RepoClient') self.resource_id = resource_id self.host = host self._subject = subject if agent is None: agent = "caom2-repo-client/{} caom2/{}".format( version.version, caom2_version) self.agent = agent self._repo_client = net.BaseWsClient(resource_id, subject, agent, retry=True, host=self.host)
def read_file_list_from_archive(config): ad_resource_id = 'ivo://cadc.nrc.ca/ad' agent = 'vlass2caom2/1.0' subject = net.Subject(certificate=config.proxy_fqn) client = net.BaseWsClient( resource_id=ad_resource_id, subject=subject, agent=agent, retry=True, ) query_meta = (f"SELECT fileName FROM archive_files WHERE archiveName = " f"'{config.archive}'") data = {'QUERY': query_meta, 'LANG': 'ADQL', 'FORMAT': 'csv'} logging.debug(f'Query is {query_meta}') try: response = client.get( f'https://{client.host}/ad/sync?{parse.urlencode((data))}', cert=config.proxy_fqn, ) if response.status_code == 200: # ignore the column name as the first part of the response artifact_files_list = response.text.split()[1:] return artifact_files_list else: raise mc.CadcException(f'Query failure {response}') except Exception as e: raise mc.CadcException(f'Failed ad content query: {e}')
def __init__(self, subject, resource_id=DEFAULT_RESOURCE_ID, host=None): """ Instance of a CAOM2RepoClient :param subject: the subject performing the action :type cadcutils.auth.Subject :param server: Host server for the caom2repo service """ agent = '{}/{}'.format(APP_NAME, version.version) self.host = host self._repo_client = net.BaseWsClient(resource_id, subject, agent, retry=True, host=host) agent = "caom2-repo-client/{} caom2/{}".format(version.version, caom2_version) self._repo_client = net.BaseWsClient(resource_id, subject, agent, retry=True, host=self.host)
def __init__(self, subject, logLevel=logging.INFO, resource_id=DEFAULT_RESOURCE_ID, host=None, agent=None): """ Instance of a CAOM2RepoClient :param subject: the subject performing the action :type cadcutils.auth.Subject :param resource_id: the resource ID of the service :param host: Host for the caom2repo service :param agent: The name of the agent (to be used in server logging) """ self.level = logLevel logging.basicConfig( format='%(asctime)s %(process)d %(levelname)-8s %(name)-12s ' + '%(funcName)s %(message)s', level=logLevel, stream=sys.stdout) self.logger = logging.getLogger('CAOM2RepoClient') self.resource_id = resource_id self.host = host self._subject = subject if agent is None: agent = "caom2-repo-client/{} caom2/{}".format( version.version, caom2_version) self.agent = agent self._repo_client = net.BaseWsClient(resource_id, subject, agent, retry=True, host=self.host, idempotent_posts=True) try: self._repo_client.caps.get_access_url( CURRENT_CAOM2REPO_OBS_CAPABILITY_ID) self.capability_id = CURRENT_CAOM2REPO_OBS_CAPABILITY_ID self.namespace = obs_reader_writer.CAOM24_NAMESPACE except KeyError: self._repo_client.caps.get_access_url( PREVIOUS_CAOM2REPO_OBS_CAPABILITY_ID) self.capability_id = PREVIOUS_CAOM2REPO_OBS_CAPABILITY_ID self.namespace = obs_reader_writer.CAOM23_NAMESPACE
def __init__(self, subject, resource_id=DEFAULT_RESOURCE_ID, host=None): """ Instance of a CadcDataClient :param subject: the subject(user) performing the action :type subject: cadcutils.net.Subject :param resource_id: The identifier of the service resource (e.g 'ivo://cadc.nrc.ca/data') :param host: Host server for the caom2repo service """ self.resource_id = resource_id self._transfer_writer = TransferWriter() self._transfer_reader = TransferReader() self.host = host agent = "{}/{}".format(APP_NAME, version.version) self._data_client = net.BaseWsClient(resource_id, subject, agent, retry=True, host=self.host)
def read_file_list_from_archive(config): ad_resource_id = 'ivo://cadc.nrc.ca/ad' agent = '{}/{}'.format(APPLICATION, '1.0') subject = net.Subject(certificate=config.proxy_fqn) client = net.BaseWsClient(resource_id=ad_resource_id, subject=subject, agent=agent, retry=True) query_meta = "SELECT fileName FROM archive_files WHERE " \ "archiveName = '{}'".format(config.archive) data = {'QUERY': query_meta, 'LANG': 'ADQL', 'FORMAT': 'csv'} logging.debug('Query is {}'.format(query_meta)) try: response = client.get('https://{}/ad/sync?{}'.format( client.host, parse.urlencode(data)), cert=config.proxy_fqn) if response.status_code == 200: # ignore the column name as the first part of the response artifact_files_list = response.text.split()[1:] return artifact_files_list else: raise mc.CadcException('Query failure {!r}'.format(response)) except Exception as e: raise mc.CadcException('Failed ad content query: {}'.format(e))