11import os
2+ import sys
23import time
34import json
45import requests
56from dotenv import load_dotenv
6- from cernrequests import get_api_token , get_with_token
7+ from cernrequests import get_api_token
78from runregistry .utils import (
89 transform_to_rr_run_filter ,
910 transform_to_rr_dataset_filter ,
1011 __parse_runs_arg ,
1112)
1213
14+ __version__ = "1.5.0"
15+
1316# Look for .env file in the directory of the caller
1417# first. If it exists, use it.
1518if os .path .exists (os .path .join (os .getcwd (), ".env" )):
3235email = "api@api"
3336client_id = os .environ .get ("SSO_CLIENT_ID" )
3437client_secret = os .environ .get ("SSO_CLIENT_SECRET" )
38+ target_application = ""
39+ target_name = ""
3540
3641
3742def setup (target ):
3843 global api_url
3944 global target_application
4045 global use_cookies
46+ global target_name
4147
4248 if target == "local" :
4349 api_url = "http://localhost:9500"
@@ -46,15 +52,17 @@ def setup(target):
4652 elif target == "development" :
4753 api_url = "https://dev-cmsrunregistry.web.cern.ch/api"
4854 use_cookies = True
49- target_application = "webframeworks-paas-dev-cmsrunregistry"
50- # elif target == "qa":
51- # api_url = "https://cmsrunregistry-qa.web.cern.ch/api" # Temporary new SSO Proxy for production
52- # use_cookies = True
53- # target_application = "webframeworks-paas-qa-cmsrunregistry"
55+ target_application = "dev-cmsrunregistry-sso-proxy"
5456 elif target == "production" :
5557 api_url = "https://cmsrunregistry.web.cern.ch/api"
5658 use_cookies = True
57- target_application = "webframeworks-paas-cmsrunregistry"
59+ target_application = "cmsrunregistry-sso-proxy"
60+
61+ target_name = target
62+
63+
64+ def _get_user_agent ():
65+ return f"runregistry_api_client/{ __version__ } ({ _get_target ()} , python { sys .version_info .major } .{ sys .version_info .minor } .{ sys .version_info .micro } , requests { requests .__version__ } )"
5866
5967
6068def _get_headers (token : str = "" ):
@@ -63,21 +71,26 @@ def _get_headers(token: str = ""):
6371 headers ["email" ] = email
6472 if token :
6573 headers ["Authorization" ] = "Bearer " + token
74+ headers ["User-Agent" ] = _get_user_agent ()
6675 return headers
6776
6877
6978setup (os .environ .get ("ENVIRONMENT" , "production" ))
7079
7180
81+ def _get_target ():
82+ return target_name
83+
84+
7285def _get_token ():
7386 # if not use_cookies:
7487 # return {"dummy": "yammy"}
7588 """
7689 Gets the token required to query RR API through the CERN SSO.
7790 :return: the token required to query Run Registry API. In particular 'connect.sid' is the one we are interested in
7891 """
79- # if os.getenv("ENVIRONMENT" ) == "development ":
80- # return None
92+ if _get_target ( ) == "local " :
93+ return ""
8194 token , expiration_date = get_api_token (
8295 client_id = client_id ,
8396 client_secret = client_secret ,
@@ -100,7 +113,7 @@ def _get_page(
100113 query_filter = transform_to_rr_run_filter (run_filter = query_filter )
101114 elif data_type == "datasets" and not ignore_filter_transformation :
102115 query_filter = transform_to_rr_dataset_filter (dataset_filter = query_filter )
103- if os . getenv ( "ENVIRONMENT" ) == "development" :
116+ if _get_target () in [ "development" , "local" ] :
104117 print (url )
105118 print (query_filter )
106119 payload = json .dumps (
@@ -121,7 +134,7 @@ def get_dataset_names_of_run(run_number, **kwargs):
121134 :return: Array of dataset names of the specified run_number
122135 """
123136 url = "{}/get_all_dataset_names_of_run/{}" .format (api_url , run_number )
124- return get_with_token (url , target_application = target_application ).json ()
137+ return requests . get (url , headers = _get_headers ( token = _get_token ()) ).json ()
125138
126139
127140def get_run (run_number , ** kwargs ):
@@ -259,7 +272,7 @@ def get_datasets(limit=40000, compress_attributes=True, **kwargs) -> list:
259272def get_cycles ():
260273 url = "{}/cycles/global" .format (api_url )
261274 headers = _get_headers (token = _get_token ())
262- if os . getenv ( "ENVIRONMENT" ) == "development" :
275+ if _get_target () in [ "development" , "local" ] :
263276 print (url )
264277 return requests .get (url , headers = headers ).json ()
265278
0 commit comments