-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathget_and_delete_dynamic_entities.py
More file actions
125 lines (98 loc) · 3.35 KB
/
Copy pathget_and_delete_dynamic_entities.py
File metadata and controls
125 lines (98 loc) · 3.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
import requests
import logging
from obp_client import token, obp_host
# Configure logging
logger = logging.getLogger(__name__)
# Configuration
BASE_URL = obp_host # Replace with your OBP instance URL
DIRECTLOGIN_TOKEN = token # Optional: Replace with your DirectLogin token
def get_all_system_dynamic_entities(token=None):
"""
Get all system-level dynamic entities in OBP.
Args:
token (str, optional): DirectLogin authentication token
Returns:
dict: The API response
"""
url = f"{BASE_URL}/obp/v6.0.0/management/system-dynamic-entities"
headers = {
"Content-Type": "application/json"
}
# Add authentication if token is provided
if token:
headers["Authorization"] = f"DirectLogin token={token}"
try:
response = requests.get(url, headers=headers)
response.raise_for_status()
return response.json()
except requests.exceptions.RequestException as e:
logger.error(f"Error getting system dynamic entity: {e}")
if hasattr(e.response, 'text'):
logger.error(f"Response: {e.response.text}")
raise
def get_all_objects_for_system_dynamic_entity(entity_name, token=None):
"""
Get all system-level dynamic entities in OBP.
Args:
token (str, optional): DirectLogin authentication token
Returns:
dict: The API response, or None if entity doesn't exist (404)
"""
url = f"{BASE_URL}/obp/dynamic-entity/{entity_name}"
headers = {
"Content-Type": "application/json"
}
# Add authentication if token is provided
if token:
headers["Authorization"] = f"DirectLogin token={token}"
try:
response = requests.get(url, headers=headers)
response.raise_for_status()
return response.json()
except requests.exceptions.HTTPError as e:
# 404 means entity doesn't exist yet - this is fine
if e.response.status_code == 404:
logger.info(f"Entity {entity_name} does not exist (404) - skipping")
return None
# For other HTTP errors, log and raise
logger.error(f"Error getting system dynamic entity: {e}")
if hasattr(e.response, 'text'):
logger.error(f"Response: {e.response.text}")
raise
except requests.exceptions.RequestException as e:
logger.error(f"Error getting system dynamic entity: {e}")
raise
def delete_object_for_system_dynamic_entity(entity_name, object_id, token=None):
url = f"{BASE_URL}/obp/dynamic-entity/{entity_name}/{object_id}"
headers = {
"Content-Type": "application/json"
}
# Add authentication if token is provided
if token:
headers["Authorization"] = f"DirectLogin token={token}"
try:
response = requests.delete(url, headers=headers)
response.raise_for_status()
return response.json()
except requests.exceptions.RequestException as e:
logger.error(f"Error deleting system dynamic entity object: {e}")
if hasattr(e.response, 'text'):
logger.error(f"Response: {e.response.text}")
raise
def delete_system_dynamic_entity(entity_id, token=None):
url = f"{BASE_URL}/obp/v6.0.0/management/system-dynamic-entities/{entity_id}"
headers = {
"Content-Type": "application/json"
}
# Add authentication if token is provided
if token:
headers["Authorization"] = f"DirectLogin token={token}"
try:
response = requests.delete(url, headers=headers)
response.raise_for_status()
return response.json()
except requests.exceptions.RequestException as e:
logger.error(f"Error deleting system dynamic entity: {e}")
if hasattr(e.response, 'text'):
logger.error(f"Response: {e.response.text}")
raise