def sanitize_input(req): diff_set_dict = req.get_json()['diff_set'] topo_diff_dict = diff_set_dict['__diff_set_topo'][0] topo_diff = Topo_Diff.from_json_dict(topo_diff_dict) sanitize_input__topo_diff(topo_diff) return topo_diff;
def sanitize_input(req): diff_set_dict = req.get_json()['diff_set'] topo_diff_dict = diff_set_dict['__diff_set_topo'][0] topo_diff = Topo_Diff.from_json_dict(topo_diff_dict) sanitize_input__topo_diff(topo_diff) return topo_diff
def sanitize_input(req): rzdoc_name = request.get_json().get('rzdoc_name') topo_diff_dict = request.get_json()['topo_diff'] topo_diff = Topo_Diff.from_json_dict(topo_diff_dict) sanitize_input__topo_diff(topo_diff) return rzdoc_name, topo_diff
def on_diff_commit__topo(self, json_data): # FIXME: sanitize input json_dict = json.loads(json_data) topo_diff = Topo_Diff.from_json_dict(json_dict['topo_diff']) log.info('ws: rx: topo diff: ' + str(topo_diff)) ctx = self.__context__common(json_dict) kernel = self.request.kernel topo_diff, commit_ret = kernel.diff_commit__topo(topo_diff, ctx) # handle serialization topo_diff_dict = topo_diff.to_json_dict() assert Topo_Diff.Commit_Result_Type == type(commit_ret) return self.multicast_msg('diff_commit__topo', topo_diff_dict, commit_ret)
def test_ws_event__topo_diff(self): class NS_test(BaseNamespace): def on_diff_commit__topo(self, *data): greenlet.getcurrent().data = data raise KeyboardInterrupt() # TODO: cleanup: properly close socket test_label = neo4j_test_util.rand_label() n_0, n_0_id = test_util.generate_random_node_dict(test_label) n_1, n_1_id = test_util.generate_random_node_dict(test_label) l, l_id = test_util.generate_random_link_dict(test_label, n_0_id, n_1_id) topo_diff = Topo_Diff(node_set_add=[n_0, n_1], link_set_add=[l]) def c_0(): with RZ_websocket(namespace=NS_test) as (_, ns_sock): c1_t.switch() # allow peer to connect data = json.dumps(topo_diff, cls=Topo_Diff.JSON_Encoder) ns_sock.emit('diff_commit__topo', data) c1_t.switch() def c_1(): with RZ_websocket(namespace=NS_test) as (sock, _): c0_t.switch() # allow peer to emit sock.wait(8) # allow self to receive c0_t = greenlet(c_0) c1_t = greenlet(c_1) c1_t.data = None c0_t.switch() self.assertTrue(None != c1_t.data) self.assertEqual(2, len(c1_t.data)) diff_in = Topo_Diff.from_json_dict(c1_t.data[0]) commit_ret = Topo_Diff.Commit_Result_Type.from_json_dict(c1_t.data[1]) self.assertEqual(Topo_Diff, type(diff_in)) self.assertEqual(Topo_Diff.Commit_Result_Type, type(commit_ret))
def test_ws_event__topo_diff(self): class NS_test(BaseNamespace): def on_diff_commit__topo(self, *data): greenlet.getcurrent().data = data raise KeyboardInterrupt( ) # TODO: cleanup: properly close socket test_label = neo4j_test_util.rand_label() n_0, n_0_id = test_util.generate_random_node_dict(test_label) n_1, n_1_id = test_util.generate_random_node_dict(test_label) l, l_id = test_util.generate_random_link_dict(test_label, n_0_id, n_1_id) topo_diff = Topo_Diff(node_set_add=[n_0, n_1], link_set_add=[l]) def c_0(): with RZ_websocket(namespace=NS_test) as (_, ns_sock): c1_t.switch() # allow peer to connect data = json.dumps(topo_diff, cls=Topo_Diff.JSON_Encoder) ns_sock.emit('diff_commit__topo', data) c1_t.switch() def c_1(): with RZ_websocket(namespace=NS_test) as (sock, _): c0_t.switch() # allow peer to emit sock.wait(8) # allow self to receive c0_t = greenlet(c_0) c1_t = greenlet(c_1) c1_t.data = None c0_t.switch() self.assertTrue(None != c1_t.data) self.assertEqual(2, len(c1_t.data)) diff_in = Topo_Diff.from_json_dict(c1_t.data[0]) commit_ret = Topo_Diff.Commit_Result_Type.from_json_dict(c1_t.data[1]) self.assertEqual(Topo_Diff, type(diff_in)) self.assertEqual(Topo_Diff.Commit_Result_Type, type(commit_ret))
print('\n'.join('%30s %30s' % (d['name'].encode('utf-8').ljust(30), d['id'].encode('utf-8').ljust(30)) for d in kernel.rzdoc__search(''))) raise SystemExit if args.list_names: print('\n'.join(d['name'].encode('utf-8') for d in kernel.rzdoc__search(''))) raise SystemExit if args.delete: remove(args.delete) if args.rename_from and args.rename_to: rename(args.rename_from, args.rename_to) if args.clone: print(json.dumps(clone(args.clone).to_json_dict())) if args.create and args.create_name: with open(args.create) as fd: data = json.load(fd) create(args.create_name, Topo_Diff.from_json_dict(json.load(fd))) if args.merge_target: merge_sources = None if args.merge: merge_sources = args.merge.split(',') if args.merge_file: with open(args.merge_file) as fd: merge_sources = [noeol(line) for line in fd.readlines()] if merge_sources: merge(args.merge_target, merge_sources) if args.dump_single: dump([args.dump_single]) if args.dump_all: dump(None) if args.load: load(args.load)