def export_getResourceInfo( self , resource = None ): """ Send the storage element resource information """ conn , error = self.__irodsClient( "r" ) if not conn: return S_ERROR( error ) storageDict = {} for resource in getResources( conn ): name = resource.getName() if resource and resource != name: continue storageDict[ name ] = {} storageDict[ name ][ "Id" ] = resource.getId() storageDict[ name ][ "AvailableSpace" ] = resource.getFreeSpace() storageDict[ name ][ "Zone" ] = resource.getZone() storageDict[ name ][ "Type" ] = resource.getTypeName() storageDict[ name ][ "Class" ] = resource.getClassName() storageDict[ name ][ "Host" ] = resource.getHost() storageDict[ name ][ "Path" ] = resource.getPath() storageDict[ name ][ "Free Space TS" ] = resource.getFreeSpaceTs() storageDict[ name ][ "Info" ] = resource.getInfo() storageDict[ name ][ "Comment" ] = resource.getComment() rcDisconnect( conn ) return S_OK( storageDict )
def export_getResourceInfo(self, resource=None): """ Send the storage element resource information """ conn, error, _userDict = self.__irodsClient() if not conn: return S_ERROR(error) storageDict = {} for resource in getResources(conn): name = resource.getName() if resource and resource != name: continue storageDict[name] = {} storageDict[name]["Id"] = resource.getId() storageDict[name]["AvailableSpace"] = resource.getFreeSpace() storageDict[name]["Zone"] = resource.getZone() storageDict[name]["Type"] = resource.getTypeName() storageDict[name]["Class"] = resource.getClassName() storageDict[name]["Host"] = resource.getHost() storageDict[name]["Path"] = resource.getPath() storageDict[name]["Free Space TS"] = resource.getFreeSpaceTs() storageDict[name]["Info"] = resource.getInfo() storageDict[name]["Comment"] = resource.getComment() rcDisconnect(conn) return S_OK(storageDict)
def _open(self, session): if self.cxn == None: # connect to iRODS myEnv, status = irods.getRodsEnv() host = self.host if self.host else myEnv.getRodsHost() port = self.port if self.port else myEnv.getRodsPort() user = self.user if self.user else myEnv.getRodsUserName() zone = self.zone if self.zone else myEnv.getRodsZone() conn, errMsg = irods.rcConnect(host, port, user, zone) if self.passwd: status = irods.clientLoginWithPassword(conn, self.passwd) else: status = irods.clientLogin(conn) if status: raise ConfigFileException("Cannot connect to iRODS: (%s) %s" % (status, errMsg.getMsg())) self.cxn = conn self.env = myEnv resources = irods.getResources(self.cxn) self.resourceHash = {} for r in resources: self.resourceHash[r.getName()] = r if self.coll != None: # already open, just skip return None c = irods.irodsCollection(self.cxn, self.env.getRodsHome()) self.coll = c # move into cheshire3 section path = self.get_path(session, 'irodsCollection', 'cheshire3') dirs = c.getSubCollections() if not path in dirs: c.createCollection(path) c.openCollection(path) if self.get_setting(session, 'createSubDir', 1): # now look for object's storage area # maybe move into database collection if (isinstance(self.parent, Database)): sc = self.parent.id dirs = c.getSubCollections() if not sc in dirs: c.createCollection(sc) c.openCollection(sc) # move into store collection dirs = c.getSubCollections() if not self.id in dirs: c.createCollection(self.id) c.openCollection(self.id)
def _open(self, session): if self.cxn == None: # connect to iRODS myEnv, status = irods.getRodsEnv() host = self.host if self.host else myEnv.getRodsHost() port = self.port if self.port else myEnv.getRodsPort() user = self.user if self.user else myEnv.getRodsUserName() zone = self.zone if self.zone else myEnv.getRodsZone() conn, errMsg = irods.rcConnect(host, port, user, zone) if self.passwd: status = irods.clientLoginWithPassword(conn, self.passwd) else: status = irods.clientLogin(conn) if status: raise ConfigFileException("Cannot connect to iRODS: (%s) %s" % (status, errMsg)) self.cxn = conn self.env = myEnv resources = irods.getResources(self.cxn) self.resourceHash = {} for r in resources: self.resourceHash[r.getName()] = r if self.coll != None: # already open, just skip return None c = irods.irodsCollection(self.cxn, self.env.getRodsHome()) self.coll = c # move into cheshire3 section path = self.get_path(session, 'irodsCollection', 'cheshire3') dirs = c.getSubCollections() if not path in dirs: c.createCollection(path) c.openCollection(path) if self.get_setting(session, 'createSubDir', 1): # now look for object's storage area # maybe move into database collection if (isinstance(self.parent, Database)): sc = self.parent.id dirs = c.getSubCollections() if not sc in dirs: c.createCollection(sc) c.openCollection(sc) # move into store collection dirs = c.getSubCollections() if not self.id in dirs: c.createCollection(self.id) c.openCollection(self.id) # Fetch user metadata myMetadata = self.get_metadataTypes(session) umd = c.getUserMetadata() umdHash = {} for u in umd: umdHash[u[0]] = icatValToPy(*u[1:]) for md in myMetadata: try: setattr(self, md, umdHash[md]) except KeyError: # hasn't been set yet pass if self.totalItems != 0: self.meanWordCount = self.totalWordCount / self.totalItems self.meanByteCount = self.totalByteCount / self.totalItems else: self.meanWordCount = 1 self.meanByteCount = 1
def get_list_resources(self): """Get the list of resource names for the server""" irods_resc = irods.getResources(self.conn) return [resc.getName() for resc in irods_resc]