Loading transfer_service/db_connector.py +20 −0 Original line number Diff line number Diff line Loading @@ -793,6 +793,26 @@ class DbConnector(object): finally: self.connPool.putconn(conn, close = False) def getTapePool(self, storageId): """Returns the tape pool for a given storage id, if the storage is cold. Otherwise it returns 'False'.""" try: conn = self.getConnection() cursor = conn.cursor(cursor_factory = RealDictCursor) cursor.execute("SELECT tape_pool FROM storage WHERE storage_id = %s;", (storageId,)) result = cursor.fetchall() cursor.close() except Exception: if not conn.closed: conn.rollback() raise else: if result: return result[0]["tape_pool"] else: return False finally: self.connPool.putconn(conn, close = False) ##### Location ##### def getLocationId(self, destStorageId): Loading transfer_service/doi_executor.py +1 −1 Original line number Diff line number Diff line Loading @@ -72,7 +72,7 @@ class DOIExecutor(TaskExecutor): 1, self.logger) params = config.loadSection("spectrum_archive") self.tapePool = params["tape_pool"] #self.tapePool = params["tape_pool"] self.tapeClient = TapeClient(params["host"], params.getint("port"), params["user"], Loading transfer_service/store_executor.py +10 −5 Original line number Diff line number Diff line Loading @@ -61,7 +61,6 @@ class StoreExecutor(TaskExecutor): 1, self.logger) params = config.loadSection("spectrum_archive") self.tapePool = params["tape_pool"] self.tapeClient = TapeClient(params["host"], params.getint("port"), params["user"], Loading Loading @@ -107,10 +106,16 @@ class StoreExecutor(TaskExecutor): else: self.tapeClient.connect() tapePoolList = self.tapeClient.getPoolList() self.tapeClient.disconnect() try: self.tapePool = self.dbConn.getTapePool(self.storageId) except Exception: self.logger.exception("FATAL: unable to obtain the tape pool.") return False else: for el in tapePoolList: if el.getName() == self.tapePool: storageFreeSpace = el.getFreeSpace() - self.TOL self.tapeClient.disconnect() self.logger.debug(f"storageFreeSpace (cold): {storageFreeSpace} B") if storageFreeSpace < self.dataSize: self.logger.error("FATAL: space available on the storage point is not enough.") Loading Loading
transfer_service/db_connector.py +20 −0 Original line number Diff line number Diff line Loading @@ -793,6 +793,26 @@ class DbConnector(object): finally: self.connPool.putconn(conn, close = False) def getTapePool(self, storageId): """Returns the tape pool for a given storage id, if the storage is cold. Otherwise it returns 'False'.""" try: conn = self.getConnection() cursor = conn.cursor(cursor_factory = RealDictCursor) cursor.execute("SELECT tape_pool FROM storage WHERE storage_id = %s;", (storageId,)) result = cursor.fetchall() cursor.close() except Exception: if not conn.closed: conn.rollback() raise else: if result: return result[0]["tape_pool"] else: return False finally: self.connPool.putconn(conn, close = False) ##### Location ##### def getLocationId(self, destStorageId): Loading
transfer_service/doi_executor.py +1 −1 Original line number Diff line number Diff line Loading @@ -72,7 +72,7 @@ class DOIExecutor(TaskExecutor): 1, self.logger) params = config.loadSection("spectrum_archive") self.tapePool = params["tape_pool"] #self.tapePool = params["tape_pool"] self.tapeClient = TapeClient(params["host"], params.getint("port"), params["user"], Loading
transfer_service/store_executor.py +10 −5 Original line number Diff line number Diff line Loading @@ -61,7 +61,6 @@ class StoreExecutor(TaskExecutor): 1, self.logger) params = config.loadSection("spectrum_archive") self.tapePool = params["tape_pool"] self.tapeClient = TapeClient(params["host"], params.getint("port"), params["user"], Loading Loading @@ -107,10 +106,16 @@ class StoreExecutor(TaskExecutor): else: self.tapeClient.connect() tapePoolList = self.tapeClient.getPoolList() self.tapeClient.disconnect() try: self.tapePool = self.dbConn.getTapePool(self.storageId) except Exception: self.logger.exception("FATAL: unable to obtain the tape pool.") return False else: for el in tapePoolList: if el.getName() == self.tapePool: storageFreeSpace = el.getFreeSpace() - self.TOL self.tapeClient.disconnect() self.logger.debug(f"storageFreeSpace (cold): {storageFreeSpace} B") if storageFreeSpace < self.dataSize: self.logger.error("FATAL: space available on the storage point is not enough.") Loading