MCPcopy
hub / github.com/WebODM/WebODM / sync_processing_node

Method sync_processing_node

coreplugins/lightning/plugin.py:81–107  ·  view source on GitHub ↗
(request)

Source from the content-addressed store, hash-verified

79 @login_required
80 @require_POST
81 def sync_processing_node(request):
82 hostname = request.POST.get('hostname')
83 port = int(request.POST.get('port'))
84 token = request.POST.get('token')
85
86 if hostname is not None and port is not None and token is not None:
87 nodes = get_objects_for_user(request.user, 'view_processingnode', ProcessingNode,
88 accept_global_perms=False)
89 matches = [n for n in nodes if n.hostname == hostname and n.port == port and n.token == token]
90 if len(matches) == 0:
91 # Add
92 node = ProcessingNode.objects.create(hostname=hostname, port=port, token=token, label="Lightning")
93 assign_perm('view_processingnode', request.user, node)
94 assign_perm('change_processingnode', request.user, node)
95 assign_perm('delete_processingnode', request.user, node)
96
97 # Keep track of lightning node IDs
98 lightning_nodes = ds.get_json('nodes', [])
99 lightning_nodes.append(node.id)
100 ds.set_json('nodes', lightning_nodes)
101
102 return get_processing_nodes(request)
103 else:
104 # Already added
105 return get_processing_nodes(request)
106 else:
107 return JsonResponse({'error': 'Invalid call (params missing)'})
108
109 @login_required
110 def get_processing_nodes(request):

Callers

nothing calls this directly

Calls 6

get_jsonMethod · 0.80
appendMethod · 0.80
set_jsonMethod · 0.80
JsonResponseFunction · 0.70
getMethod · 0.45
createMethod · 0.45

Tested by

no test coverage detected