Skip to content

Commit d1ded3c

Browse files
authored
Merge pull request #174 from DrDroidLab/feature/new_metadata_extraction
feat: Delegate agent asset refresh to backend, update playbook task r…
2 parents e378a73 + ca7f03d commit d1ded3c

File tree

4 files changed

+15
-20
lines changed

4 files changed

+15
-20
lines changed

connectors/apps.py

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
import logging
2-
import uuid
32

43
from django.apps import AppConfig
54
from django.conf import settings
65

7-
from asset_manager.tasks import populate_connector_metadata
86
from connectors.tasks import register_connectors
9-
from drdroid_debug_toolkit.core.protos.base_pb2 import Source
10-
from utils.credentilal_utils import credential_yaml_to_connector_proto, generate_credentials_dict
7+
from utils.credentilal_utils import credential_yaml_to_connector_proto
118
from utils.static_mappings import integrations_connector_type_connector_keys_map
129

1310
logger = logging.getLogger(__name__)
@@ -25,7 +22,9 @@ def ready(self):
2522
drd_cloud_api_token = settings.DRD_CLOUD_API_TOKEN
2623
loaded_connections = settings.LOADED_CONNECTIONS if settings.LOADED_CONNECTIONS else {}
2724
if loaded_connections:
25+
# Register connectors with DRD Cloud - asset refresh will be triggered by backend
2826
register_connectors(drd_cloud_host, drd_cloud_api_token, loaded_connections)
27+
# Validate connector keys
2928
for c, metadata in loaded_connections.items():
3029
connector_proto = credential_yaml_to_connector_proto(c, metadata)
3130
connector_name = connector_proto.name.value
@@ -39,13 +38,4 @@ def ready(self):
3938
break
4039
if not all_keys_found:
4140
raise ValueError(f'Missing required connector keys for {connector_name}')
42-
connector_type: Source = connector_proto.type
43-
credentials_dict = generate_credentials_dict(connector_type, connector_keys_proto)
44-
if credentials_dict:
45-
request_id = uuid.uuid4().hex
46-
populate_connector_metadata.delay(request_id, connector_name, connector_type, credentials_dict)
47-
elif settings.NATIVE_KUBERNETES_API_MODE:
48-
request_id = uuid.uuid4().hex
49-
populate_connector_metadata.delay(request_id, connector_name, connector_type, credentials_dict)
50-
else:
51-
logger.warning(f'No credentials found for connector {connector_name}')
41+
logger.info(f'Registered {len(loaded_connections)} connectors. Asset refresh will be triggered by backend.')

connectors/tasks.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,14 @@ def register_connectors(drd_cloud_host, drd_cloud_api_token, loaded_connections)
9696
connector_proto = credential_yaml_to_connector_proto(c, metadata)
9797
connectors.append(proto_to_dict(Connector(name=connector_proto.name, type=connector_proto.type)))
9898

99-
response = requests.post(f'{drd_cloud_host}/connectors/proxy/register',
99+
commit_hash = settings.VPC_AGENT_COMMIT_HASH
100+
url = f'{drd_cloud_host}/connectors/proxy/register?commit_hash={commit_hash}'
101+
logger.info(f'register_connectors:: Registering {len(connectors)} connectors with commit_hash: {commit_hash}')
102+
103+
response = requests.post(url,
100104
headers={'Authorization': f'Bearer {drd_cloud_api_token}'},
101105
json={'connectors': connectors})
102106
if response.status_code != 200:
103107
logger.error(f'Failed to register connectors with DRD Cloud: {response.json()}')
108+
else:
109+
logger.info(f'register_connectors:: Successfully registered connectors')

playbooks_engine/tasks.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
from drdroid_debug_toolkit.core.integrations.source_facade import source_facade
1111
from drdroid_debug_toolkit.core.protos.base_pb2 import TimeRange, Source
12-
from drdroid_debug_toolkit.core.protos.playbooks.playbook_commons_pb2 import PlaybookTaskResult
12+
from drdroid_debug_toolkit.core.protos.playbooks.playbook_commons_pb2 import PlaybookTaskResult, TextResult
1313
from drdroid_debug_toolkit.core.protos.playbooks.playbook_pb2 import PlaybookTask
1414
from utils.proto_utils import dict_to_proto, proto_to_dict
1515
from utils.credentilal_utils import credential_yaml_to_connector_proto
@@ -70,10 +70,9 @@ def _execute_asset_refresh_task(playbook_task_execution_log):
7070
populate_connector_metadata(request_id, connector_name, connector_type, credentials_dict)
7171
message = f'Successfully executed full asset refresh for connector {connector_name}'
7272

73-
# Create success result
73+
# Create success result using TextResult
7474
result = PlaybookTaskResult(
75-
output=StringValue(value=message),
76-
error=StringValue(value="")
75+
text=TextResult(output=StringValue(value=message))
7776
)
7877

7978
except Exception as e:

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,5 +149,5 @@ wcwidth==0.2.13
149149
websocket-client==1.8.0
150150
yarl==1.12.1
151151
zstandard==0.23.0
152-
# Latest version of drdroid-debug-toolkit -> victoria logs & sentry test connection returns
152+
# Latest version of drdroid-debug-toolkit -> fixed asset refresh task in proxy agent class
153153
git+https://github.com/DrDroidLab/drdroid-debug-toolkit.git@master

0 commit comments

Comments
 (0)