Skip to content

Commit 23cded6

Browse files
committed
feat(api): Add API to view raw data of auto-discovered instances
1 parent d78cb0f commit 23cded6

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

cmdb-api/api/lib/cmdb/auto_discovery/auto_discovery.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,8 @@ def get(cls, ci_id, oneagent_id, oneagent_name, last_update_at=None):
308308
if new_last_update_at < __last_update_at:
309309
new_last_update_at = __last_update_at
310310

311+
new_last_update_at = new_last_update_at or ad_rules_updated_at
312+
311313
write_ad_rule_sync_history.apply_async(args=(result, oneagent_id, oneagent_name, datetime.datetime.now()),
312314
queue=CMDB_QUEUE)
313315
if not last_update_at or new_last_update_at > last_update_at:
@@ -693,6 +695,11 @@ def delete2(cls, type_id, unique_value):
693695
stdout="delete resource: {}".format(unique_value))
694696
# TODO: delete ci
695697

698+
@classmethod
699+
def get_instance_by_id(cls, adc_id):
700+
adc = cls.cls.get_by_id(adc_id) or abort(404, ErrFormat.adc_not_found)
701+
return adc.instance
702+
696703
@classmethod
697704
def accept(cls, adc, adc_id=None, nickname=None):
698705
if adc_id is not None:
@@ -725,7 +732,7 @@ def accept(cls, adc, adc_id=None, nickname=None):
725732
from api.tasks.cmdb import add_net_device_ports
726733
add_net_device_ports.apply_async(args=(ci_id, adc.instance['ports']),
727734
queue=CMDB_QUEUE)
728-
735+
729736
adc.update(is_accept=True,
730737
accept_by=nickname or current_user.nickname,
731738
accept_time=datetime.datetime.now(),

cmdb-api/api/views/cmdb/auto_discovery.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -205,12 +205,14 @@ def delete(self, _id):
205205
class AutoDiscoveryCIView(APIView):
206206
url_prefix = ("/adc", "/adc/<int:adc_id>", "/adc/ci_types/<int:type_id>/attributes", "/adc/ci_types")
207207

208-
def get(self, type_id=None):
208+
def get(self, type_id=None, adc_id=None):
209209
if "attributes" in request.url:
210210
return self.jsonify(AutoDiscoveryCICRUD.get_attributes_by_type_id(type_id))
211-
elif "ci_types" in request.url:
211+
if "ci_types" in request.url:
212212
need_other = request.values.get("need_other")
213213
return self.jsonify(AutoDiscoveryCICRUD.get_ci_types(need_other))
214+
if adc_id is not None:
215+
return self.jsonify(AutoDiscoveryCICRUD.get_instance_by_id(adc_id))
214216

215217
page = get_page(request.values.pop('page', 1))
216218
page_size = get_page_size(request.values.pop('page_size', None))

0 commit comments

Comments
 (0)