-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
135 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,129 @@ | ||
import requests | ||
import logging | ||
import json | ||
from maap.utils import endpoints | ||
from maap.utils import requests_utils | ||
|
||
|
||
class Secrets: | ||
""" | ||
Functions used for Member secrets API interfacing | ||
""" | ||
def __init__(self, config, api_header): | ||
self._api_header = api_header | ||
# self._members_endpoint = members_endpoint | ||
self._members_endpoint = "https://api.dit.maap-project.org/api/members/self" | ||
self._logger = logging.getLogger(__name__) | ||
|
||
|
||
def get_secrets(self): | ||
""" | ||
Returns a list of secrets for a given user. | ||
Returns: | ||
list: Secret names for a given user. | ||
""" | ||
try: | ||
response = requests.get( | ||
url = f"{self._members_endpoint}/{endpoints.MEMBERS_SECRETS}", | ||
headers=self._api_header | ||
) | ||
|
||
return json.loads(response.text) | ||
|
||
except Exception as ex: | ||
raise(f"Error retrieving secrets: {ex}") | ||
|
||
|
||
def get_secret(self, secret_name=None): | ||
""" | ||
Returns secret value for provided secret name. | ||
Args: | ||
secret_name (str, required): Secret name. | ||
secret_value (str, optional): Secret value. | ||
Returns: | ||
dict: Secret name and value. | ||
Raises: | ||
ValueError: If secret name is not provided. | ||
""" | ||
try: | ||
if secret_name is None: | ||
raise ValueError("Failed to get secret value. Please provide secret name.") | ||
|
||
response = requests.get( | ||
url = f"{self._members_endpoint}/{endpoints.MEMBERS_SECRETS}/{secret_name}", | ||
headers=self._api_header | ||
) | ||
|
||
return json.loads(response.text) | ||
|
||
except Exception as ex: | ||
raise(f"Error retrieving secret: {ex}") | ||
|
||
|
||
def add_secret(self, secret_name=None, secret_value=None): | ||
""" | ||
Adds a secret. Secret name must be provided. Secret value may be null. | ||
Args: | ||
secret_name (str, required): Secret name. | ||
secret_value (str, optional): Secret value. | ||
Returns: | ||
dict: Containing name and value of secret that was just added. | ||
Raises: | ||
ValueError: If secret name is not provided. | ||
""" | ||
try: | ||
if secret_name is None: | ||
raise ValueError("Failed to add secret. Please provide secret name.") | ||
|
||
response = requests.post( | ||
url = f"{self._members_endpoint}/{endpoints.MEMBERS_SECRETS}", | ||
headers=self._api_header, | ||
data=json.dumps({"secret_name": secret_name, "secret_value": secret_value}) | ||
) | ||
|
||
return json.loads(response.text) | ||
|
||
except Exception as ex: | ||
raise(f"Error adding secret: {ex}") | ||
|
||
|
||
|
||
def delete_secret(self, secret_name=None): | ||
""" | ||
Deletes a secret. | ||
Args: | ||
secret_name (str, required): Secret name. | ||
Returns: | ||
dict: Containing response code and message indicating whether or not deletion was successful. | ||
Raises: | ||
ValueError: If secret name is not provided. | ||
""" | ||
try: | ||
if secret_name is None: | ||
raise ValueError("Failed to delete secret. Please provide secret name.") | ||
|
||
response = requests.delete( | ||
url = f"{self._members_endpoint}/{endpoints.MEMBERS_SECRETS}/{secret_name}", | ||
headers=self._api_header | ||
) | ||
|
||
return json.loads(response.text) | ||
|
||
except Exception as ex: | ||
raise(f"Error deleting secret: {ex}") | ||
|
||
|
||
|
||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,3 +3,5 @@ | |
DPS_JOB_DISMISS = "cancel" | ||
DPS_JOB_LIST = "list" | ||
CMR_ALGORITHM_DATA = "data" | ||
|
||
MEMBERS_SECRETS = "secrets" |