def test_redis_unavailable(self): self._servicer._redis_dict = MockUnavailableRedis("localhost", 6380) req = UpdateRecordRequest() req.id = "IMSI557" req.fields["mac_addr"] = "aa:bb:aa:bb:aa:bb" with self.assertRaises(grpc.RpcError) as err: self._stub.UpdateRecord(req) self.assertEqual(err.exception.code(), grpc.StatusCode.UNAVAILABLE) get_req = GetDirectoryFieldRequest() get_req.id = "IMSI557" get_req.field_key = "mac_addr" with self.assertRaises(grpc.RpcError) as err: self._stub.GetDirectoryField(get_req) self.assertEqual(err.exception.code(), grpc.StatusCode.UNAVAILABLE) del_req = DeleteRecordRequest() del_req.id = "IMSI557" with self.assertRaises(grpc.RpcError) as err: self._stub.DeleteRecord(del_req) self.assertEqual(err.exception.code(), grpc.StatusCode.UNAVAILABLE) void_req = Void() with self.assertRaises(grpc.RpcError) as err: self._stub.GetAllDirectoryRecords(void_req) self.assertEqual(err.exception.code(), grpc.StatusCode.UNAVAILABLE)
def delete_record_handler(client, args): delete_record_request = DeleteRecordRequest() delete_record_request.id = args.id try: client.DeleteRecord(delete_record_request) print("Successfully deleted record for %s" % args.id) except grpc.RpcError as e: print("gRPC failed with %s: %s" % (e.code(), e.details()))
def test_delete_record(self): self._servicer._redis_dict.clear() req = UpdateRecordRequest() req.id = "IMSI557" self._stub.UpdateRecord(req) self.assertTrue(req.id in self._servicer._redis_dict) del_req = DeleteRecordRequest() del_req.id = "IMSI557" self._stub.DeleteRecord(del_req) self.assertFalse(req.id in self._servicer._redis_dict) with self.assertRaises(grpc.RpcError) as err: self._stub.DeleteRecord(del_req) self.assertEqual(err.exception.code(), grpc.StatusCode.NOT_FOUND)
def _build_delete_records_data(record_list: list, input_file: str): delete_record_reqs = [] for index, record in enumerate(record_list): request = DeleteRecordRequest(id=record.id, ) request_dict = json_format.MessageToDict(request) delete_record_reqs.append(request_dict) with open(input_file, 'w') as file: json.dump(delete_record_reqs, file, separators=(',', ':'))
def _cleanup_subs(): """Clear directory records""" client = GatewayDirectoryServiceStub( ServiceRegistry.get_rpc_channel( DIRECTORYD_SERVICE_NAME, ServiceRegistry.LOCAL, ), ) for record in client.GetAllDirectoryRecords(Void()).records: sid = DeleteRecordRequest(id=record.id, ) client.DeleteRecord(sid)