def register_proposal(caller_identity): payload = request.get_json(force=True) proposal = payload.get('service_proposal', None) if proposal is None: return jsonify(error='missing service_proposal'), 400 node_key = proposal.get('provider_id', None) if node_key is None: return jsonify(error='missing provider_id'), 400 if node_key.lower() != caller_identity: message = 'provider_id does not match current identity' return jsonify(error=message), 403 node = Node.query.get(node_key) if not node: node = Node(node_key) node.ip = request.remote_addr node.proposal = json.dumps(proposal) node.mark_activity() db.session.add(node) db.session.commit() return jsonify({})
def test_filter_active_nodes(self): node1 = Node("node1") node1.mark_activity() db.session.add(node1) node2 = Node("node2") db.session.add(node2) nodes = filter_active_nodes().all() self.assertEqual([node1], nodes)