def deactivateTracing(self, request, context): try: self.execution_environment.deactivate_tracing() return common_messages_pb2.ExceptionInfo() except Exception as ex: return self.get_exception_info(ex)
def closeSessionInDS(self, request, context): try: self.execution_environment.close_session_in_ee( Utils.get_id(request.sessionID)) return common_messages_pb2.ExceptionInfo() except Exception as ex: return self.get_exception_info(ex)
def detachObjectFromSession(self, request, context): try: self.execution_environment.detach_object_from_session(Utils.get_id(request.objectID), Utils.get_id(request.sessionID)) return common_messages_pb2.ExceptionInfo() except Exception as ex: return self.get_exception_info(ex)
def deleteAlias(self, request, context): try: self.execution_environment.delete_alias(Utils.get_id(request.sessionID), Utils.get_id(request.objectID)) return common_messages_pb2.ExceptionInfo() except Exception as ex: return self.get_exception_info(ex)
def consolidateVersion(self, request, context): try: self.execution_environment.consolidate_version(Utils.get_id(request.sessionID), Utils.get_id(request.versionObjectID)) return common_messages_pb2.ExceptionInfo() except Exception as ex: return self.get_exception_info(ex)
def federate(self, request, context): try: logger.verbose("Federation started") objects_to_persist = Utils.get_param_or_return(request.params) session_id = Utils.get_id(request.sessionID) self.execution_environment.federate(session_id, objects_to_persist) logger.verbose("Federation finished, sending response") return common_messages_pb2.ExceptionInfo() except Exception as ex: return self.get_exception_info(ex)
def unfederate(self, request, context): try: logger.verbose("Unfederation started") self.execution_environment.unfederate(Utils.get_id(request.sessionID), Utils.get_id(request.objectID), Utils.get_id(request.externalExecutionEnvironmentID), request.recursive) logger.verbose("Unfederation finished, sending response") return common_messages_pb2.ExceptionInfo() except Exception as ex: return self.get_exception_info(ex)
def deployMetaClasses(self, request, context): logger.verbose("[deployMetaClasses] Deploying classes") try: namespace = request.namespace classes_map_yamls = request.deploymentPack self.execution_environment.ds_deploy_metaclasses(namespace, classes_map_yamls) return common_messages_pb2.ExceptionInfo() except Exception as ex: return self.get_exception_info(ex)
def makePersistent(self, request, context): try: objects_to_persist = Utils.get_param_or_return(request.params) session_id = Utils.get_id(request.sessionID) self.execution_environment.make_persistent(session_id, objects_to_persist) logger.verbose("MakePersistent finished, sending response") return common_messages_pb2.ExceptionInfo() except Exception as ex: traceback.print_exc() return self.get_exception_info(ex)
def synchronize(self, request, context): try: object_id = Utils.get_id(request.objectID) implementation_id = Utils.get_id(request.implementationID) serialized_params = Utils.get_param_or_return(request.params) session_id = Utils.get_id(request.sessionID) calling_backend_id = Utils.get_id(request.callingBackendID) self.execution_environment.synchronize(session_id, object_id, implementation_id, serialized_params, calling_backend_id) return common_messages_pb2.ExceptionInfo() except DataClayException as ex: return self.get_exception_info(ex)
def updateRefs(self, request, context): try: """ deserialize into dictionary of object id - integer """ ref_counting = dict() for serialized_oid, counter in request.refsToUpdate.items(): ref_counting[serialized_oid] = counter self.execution_environment.update_refs(ref_counting) return common_messages_pb2.ExceptionInfo() except Exception as ex: traceback.print_exc() return self.get_exception_info(ex)
def updateObject(self, request, context): try: self.execution_environment.update_object( Utils.get_id(request.sessionID), Utils.get_id(request.intoObjectID), Utils.get_param_or_return(request.fromObject)) logger.verbose("updateObject finished, sending response") return common_messages_pb2.ExceptionInfo() except DataClayException as ex: return self.get_exception_info(ex)
def notifyUnfederation(self, request, context): try: logger.verbose("Notify Unfederation started") session_id = Utils.get_id(request.sessionID) object_ids = set() for oid in request.objectIDs: object_ids.add(Utils.get_id(oid)) self.execution_environment.notify_unfederation(session_id, object_ids) logger.verbose("Notify Unfederation finished, sending response") return common_messages_pb2.ExceptionInfo() except Exception as ex: traceback.print_exc() return self.get_exception_info(ex)
def notifyFederation(self, request, context): try: logger.verbose("Notify Federation started") objects_to_persist = [] for vol_param in request.objects: param = Utils.get_obj_with_data_param_or_return(vol_param) objects_to_persist.append(param) session_id = Utils.get_id(request.sessionID) self.execution_environment.notify_federation(session_id, objects_to_persist) logger.verbose("Notify Federation finished, sending response") return common_messages_pb2.ExceptionInfo() except Exception as ex: return self.get_exception_info(ex)
def newMetaData(self, request, context): try: md_infos = {} for k, v in request.mdInfos.items(): md_infos[Utils.get_id_from_uuid(k)] = dataclay_yaml_load(v) self.client.ds_new_metadata(md_infos) return common_messages_pb2.ExceptionInfo() except Exception as ex: return self.get_exception_info(ex)
def upsertObjects(self, request, context): try: session_id = Utils.get_id(request.sessionID) objects = [] for entry in request.bytesUpdate: objects.append(Utils.get_obj_with_data_param_or_return(entry)) self.execution_environment.upsert_objects(session_id, objects) return common_messages_pb2.ExceptionInfo() except Exception as ex: return self.get_exception_info(ex)
def get_exception_info(self, ex): ex_message = None if hasattr(ex, "message"): ex_message = ex.message logger.warning("Exception produced with message:\n%s", ex_message) try: ex_serialized = pickle.dumps(ex) except TypeError: logger.warning("Could not serialize %s", ex) ex_serialized = None return common_messages_pb2.ExceptionInfo( isException=True, serializedException=ex_serialized, exceptionMessage=Utils.prepare_exception(ex_message, Utils.return_stack()))
def storeObjects(self, request, context): try: objects_list = [] for vol_param in request.objects: param = Utils.get_obj_with_data_param_or_return(vol_param) objects_list.append(param) ids_with_alias_set = set() session_id = Utils.get_id(request.sessionID) if request.idsWithAlias is not None and len(request.idsWithAlias) > 0: for ids_with_alias in request.idsWithAlias: ids_with_alias_set.add(Utils.get_id(ids_with_alias)) self.execution_environment.store_objects(session_id, objects_list, request.moving, ids_with_alias_set) return common_messages_pb2.ExceptionInfo() except Exception as ex: return self.get_exception_info(ex)