def ds_remove_objects(self, session_id, object_ids, recursive, moving, new_hint): obj_ids_list = [] for oid in object_ids: obj_ids_list.append(Utils.get_msg_options['object'](oid)) request = dataservice_messages_pb2.RemoveObjectsRequest( sessionID=Utils.get_msg_options['session'](session_id), objectIDs=obj_ids_list, recursive=recursive, moving=moving, newHint=Utils.get_msg_options['exec_env'](new_hint)) try: response = self.ds_stub.removeObjects(request) except RuntimeError as e: raise e if response.excInfo.isException: raise DataClayException(response.excInfo.exceptionMessage) result = dict() for k, v in response.removedObjects.items(): result[Utils.get_id_from_uuid(k)] = Utils.get_id_from_uuid(v) return result
def ds_new_version(self, session_id, object_id, metadata_info): logger.info("This new_version is called somewhere?") request = dataservice_messages_pb2.NewVersionRequest( sessionID=Utils.get_msg_options['session'](session_id), objectID=Utils.get_msg_options['object'](object_id), metadataInfo=dataclay_yaml_dump(metadata_info)) try: response = self.ds_stub.newVersion(request) except RuntimeError as e: raise e if response.excInfo.isException: raise DataClayException(response.excInfo.exceptionMessage) result = dict() oid = Utils.get_id(response.objectID) for k, v in response.versionedIDs: result[Utils.get_id_from_uuid(k)] = Utils.get_id_from_uuid(v) t = (oid, result) return t
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 migrateObjectsToBackends(self, request, context): try: backends = dict() for k, v in request.destStorageLocs.items(): backends[Utils.get_id_from_uuid(k)] = dataclay_yaml_load(v) result = self.client.ds_migrate_objects_to_backends(backends) migr_obj_res = dict() for k, v in result[0].items(): migrated_obj_list = list() for oid in v: migrated_obj_list.append( Utils.get_msg_options['object'](oid)) migrated_obj_builder = dataservice_messages_pb2.MigratedObjects( objs=migrated_obj_list) migr_obj_res[str(k)] = migrated_obj_builder non_migrated_objs_list = list() for oid in result[1]: non_migrated_objs_list.append( Utils.get_msg_options['object'](oid)) non_migrated_objs_builder = dataservice_messages_pb2.MigratedObjects( objs=non_migrated_objs_list) return dataservice_messages_pb2.MigrateObjectsResponse( migratedObjs=migr_obj_res, nonMigratedObjs=non_migrated_objs_builder) except Exception as ex: return dataservice_messages_pb2.MigrateObjectsResponse( excInfo=self.get_exception_info(ex))
def ds_migrate_objects_to_backends(self, back_ends): back_ends_dict = dict() for k, v in back_ends.items(): back_ends_dict[k] = dataclay_yaml_dump(v) request = dataservice_messages_pb2.MigrateObjectsRequest( destStorageLocs=back_ends_dict) try: response = self.ds_stub.migrateObjectsToBackends(request) except RuntimeError as e: raise e if response.excInfo.isException: raise DataClayException(response.excInfo.exceptionMessage) result = dict() for k, v in response.migratedObjs.items(): m_objs = v oids = set() for oid in m_objs.getObjsList(): oids.add(Utils.get_id(oid)) result[Utils.get_id_from_uuid(k)] = oids non_migrated = set() for oid in response.nonMigratedObjs.getObjsList(): non_migrated.add(Utils.get_id(oid)) t = (result, non_migrated) return t
def newPersistentInstance(self, request, context): try: iface_bit_maps = {} for k, v in request.ifaceBitMaps.items(): iface_bit_maps[Utils.get_id_from_uuid(k)] = Utils.prepare_bytes(v) params = [] if request.params: params = Utils.get_param_or_return(request.params) oid = self.client.ds_new_persistent_instance(Utils.get_id(request.sessionID), Utils.get_id(request.classID), Utils.get_id(request.implementationID), iface_bit_maps, params) return dataservice_messages_pb2.NewPersistentInstanceResponse(objectID=Utils.get_msg_id(oid)) except Exception as ex: return dataservice_messages_pb2.NewPersistentInstanceResponse( excInfo=self.get_exception_info(ex))