def get_storage_location_info(self, st_loc_id, from_backend=False): request = logicmodule_messages_pb2.GetStorageLocationInfoRequest( storageLocationID=Utils.get_msg_id(st_loc_id), fromBackend=from_backend) lm_function = lambda request: self.lm_stub.getStorageLocationInfo.future( request=request, metadata=self.metadata_call) response = self._call_logicmodule(request, lm_function) if response.excInfo.isException: raise DataClayException(response.excInfo.exceptionMessage) return Utils.get_storage_location(response.storageLocationInfo)
def ds_migrate_objects_to_backends(self, back_ends): back_ends_dict = dict() for k, v in back_ends.items(): back_ends_dict[k] = Utils.get_storage_location(v) request = dataservice_messages_pb2.MigrateObjectsRequest( destStorageLocs=back_ends_dict) try: response = self.ds_stub.migrateObjectsToBackends( request, metadata=self.metadata_call) 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(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 migrateObjectsToBackends(self, request, context): try: backends = dict() for k, v in request.destStorageLocs.items(): backends[Utils.get_id_from_uuid(k)] = Utils.get_storage_location(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_id(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_id(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) )