Skip to content
This repository was archived by the owner on May 5, 2025. It is now read-only.

Commit 2aa5c5d

Browse files
authored
Alpha7 (#142)
* Bump version * Update HISTORY.md * Update credentials.json parent dir name * Update User-Agent package name * Add developer_token_provider support * Add python2 support for urlparse
1 parent 8a39af3 commit 2aa5c5d

File tree

7 files changed

+44
-11
lines changed

7 files changed

+44
-11
lines changed

HISTORY.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# History
22

3+
## 2.0.0-alpha7 (2020-03-23)
4+
5+
- Updated SDK name in HTTPClient default headers
6+
- Added support for specifying Developer Token provider using envar or kwarg
7+
- Updated `credentials.json` parent dir name
8+
39
## 2.0.0-alpha6 (2020-03-04)
410

511
- Changed `iter_job_results()` method to allow overriding `enforce_json`

pan_cortex_data_lake/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"""Main package for cortex."""
44

55
__author__ = "Palo Alto Networks"
6-
__version__ = "2.0.0-a6"
6+
__version__ = "2.0.0-a7"
77

88
from .exceptions import ( # noqa: F401
99
CortexError,

pan_cortex_data_lake/adapters/tinydb_adapter.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,10 @@ def init_store(self):
4242
dbfile = os.getenv("PAN_CREDENTIALS_DBFILE")
4343
else:
4444
dbfile = os.path.join(
45-
os.path.expanduser("~"), ".config", "pancloud", "credentials.json"
45+
os.path.expanduser("~"),
46+
".config",
47+
"pan_cortex_data_lake",
48+
"credentials.json",
4649
)
4750
if not os.path.exists(os.path.dirname(dbfile)):
4851
try:

pan_cortex_data_lake/credentials.py

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@
99
from collections import namedtuple
1010
from threading import Lock
1111

12+
try:
13+
from urllib.parse import urlparse
14+
except ImportError:
15+
from urlparse import urlparse
16+
1217
from requests import Request
1318
from time import time
1419
from base64 import b64decode
@@ -20,7 +25,7 @@
2025
# Constants
2126
API_BASE_URL = "https://api.paloaltonetworks.com"
2227
AUTH_BASE_URL = "https://identity.paloaltonetworks.com/as/authorization.oauth2"
23-
DEVELOPER_TOKEN_URL = "https://app.apiexplorer.rocks"
28+
DEVELOPER_TOKEN_PROVIDER = "https://app.apiexplorer.rocks/request_token"
2429

2530
ReadOnlyCredentials = namedtuple(
2631
"ReadOnlyCredentials",
@@ -39,7 +44,7 @@ def __init__(
3944
client_id=None,
4045
client_secret=None,
4146
developer_token=None,
42-
developer_token_url=None,
47+
developer_token_provider=None,
4348
instance_id=None,
4449
profile=None,
4550
redirect_uri=None,
@@ -71,7 +76,7 @@ def __init__(
7176
client_id (str): OAuth2 client ID. Defaults to ``None``.
7277
client_secret (str): OAuth2 client secret. Defaults to ``None``.
7378
developer_token (str): Developer Token. Defaults to ``None``.
74-
developer_token_url (str): Developer Token URL. Defaults to ``None``.
79+
developer_token_provider (str): Developer Token Provider URL. Defaults to ``None``.
7580
instance_id (str): Instance ID. Defaults to ``None``.
7681
profile (str): Credentials profile. Defaults to ``'default'``.
7782
redirect_uri (str): Redirect URI. Defaults to ``None``.
@@ -90,7 +95,7 @@ def __init__(
9095
self.client_id_ = client_id
9196
self.client_secret_ = client_secret
9297
self.developer_token_ = developer_token
93-
self.developer_token_url = developer_token_url or DEVELOPER_TOKEN_URL
98+
self.developer_token_provider_ = developer_token_provider
9499
self.instance_id = instance_id
95100
self.jwt_exp_ = None
96101
self.profile = profile or "default"
@@ -178,6 +183,20 @@ def developer_token(self, developer_token):
178183
"""Set developer token."""
179184
self.developer_token_ = developer_token
180185

186+
@property
187+
def developer_token_provider(self):
188+
"""Get developer token provider."""
189+
return (
190+
self.developer_token_provider_
191+
or os.getenv("PAN_DEVELOPER_TOKEN_PROVIDER")
192+
or DEVELOPER_TOKEN_PROVIDER
193+
)
194+
195+
@developer_token_provider.setter
196+
def developer_token_provider(self, developer_token_provider):
197+
"""Set developer token provider."""
198+
self.developer_token_provider_ = developer_token_provider
199+
181200
@property
182201
def jwt_exp(self):
183202
"""Get JWT exp."""
@@ -459,10 +478,15 @@ def refresh(self, access_token=None, **kwargs):
459478
with self.token_lock:
460479
if access_token == self.access_token or access_token is None:
461480
if self.developer_token is not None:
481+
parsed_provider = urlparse(self.developer_token_provider)
482+
url = "{}://{}".format(
483+
parsed_provider.scheme, parsed_provider.netloc
484+
)
485+
endpoint = parsed_provider.path
462486
r = self._httpclient.request(
463487
method="POST",
464-
url=self.developer_token_url,
465-
endpoint="/request_token",
488+
url=url,
489+
endpoint=endpoint,
466490
headers={
467491
"Authorization": "Bearer {}".format(
468492
self.developer_token

pan_cortex_data_lake/httpclient.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ def _default_headers(self):
155155
self.session.headers.update(
156156
{
157157
"Accept": "application/json",
158-
"User-Agent": "%s/%s" % ("cortex-sdk-python", __version__),
158+
"User-Agent": "%s/%s" % ("cortex-data-lake-python", __version__),
159159
}
160160
)
161161
logger.debug("Default headers applied: %r" % self.session.headers)

setup.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[bumpversion]
2-
current_version = 2.0.0a6
2+
current_version = 2.0.0a7
33
commit = True
44
tag = True
55

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
setup(
2424
name="pan-cortex-data-lake",
25-
version="2.0.0-a6",
25+
version="2.0.0-a7",
2626
description="Python idiomatic SDK for Cortex™ Data Lake.",
2727
long_description=readme + "\n\n" + history,
2828
long_description_content_type="text/markdown",

0 commit comments

Comments
 (0)