def query(self, params): q = Structs.getQueryFromXmlRpc(params[0]) ptype = Structs.getProductTypeFromXmlRpc(params[1]) ids = self.catalog.query(q, ptype) if ids is not None and len(ids) > 0: return Result(None, [self.catalog.getProductById(i) for i in ids]) return Result(None, Vector())
def ingestProduct(self, params): productHash, metadata, clientXfer = params p = Structs.getProductFromXmlRpc(productHash) p.setTransferStatus(Product.STATUS_TRANSFER) self.catalog.addProduct(p) m = Metadata() m.addMetadata(metadata) self.catalog.addMetadata(m, p) if not clientXfer: versioner = GenericFileManagerObjectFactory.getVersionerFromClassName(p.getProductType().getVersioner()) versioner.createDataStoreReferences(p, m) self.catalog.addProductReferences(p) self.xfer.transferProduct(p) p.setTransferStatus(Product.STATUS_RECEIVED) self.catalog.setProductTranfserStatus(p) return Result(None, p.getProductId())
def getNumProducts(self, params): ptype = Structs.getProductTypeFromXmlRpc(params[0]) return Result(Integer, str(self.catalog.getNumProducts(ptype)))
def catalogProduct(self, params): p = Structs.getProductFromXmlRpc(params[0]) return Result(None, self.catalog.addProduct(p))
def getProductByName(self, params): return Result(None, Structs.getXmlRpcProduct(self.catalog.getProductByName(params[0])))
def getElementsByProductType(self, params): ptype = Structs.getProductTypeFromXmlRpc(params[0]) return Structs.getXmlRpcElementList(self.catalog.getValidationLayer().getElements(ptype))
def getCurrentFileTransfers(self, params): xfers = self.tracker.getCurrentFileTransfers() if xfers is not None and len(xfers) > 0: return Result(None, Structs.getXmlRpcFileTransferStatuses(xfers)) else: return Result(None, Vector())
def getProductTypes(self, params): return Result(None, Structs.getXmlRpcProductList(self.repo.getProductTypes()))
def setProductTransferStatus(self, params): self.catalog.setProductTransferStatus(Structs.getProductFromXmlRpc(params[0])) return Result(Boolean, 'true')
def getCurrentFileTransfer(self, params): status = self.tracker.getCurrentFileTransfer() if status is None: return Result(None, Hashtable()) else: return Result(None, Structs.getXmlRpcFileTransferStatus(status))
def removeProductTransferStatus(self, params): self.tracker.removeProductTransferStatus(Structs.getProductFromXmlRpc(params[0])) return Result(Boolean, 'true')
def transferringProduct(self, params): self.tracker.transferringProduct(Structs.getProductFromXmlRpc(params[0])) return Result(Boolean, 'true')
def addProductReferences(self, params): self.catalog.addProductReferences(Structs.getProductFromXmlRpc(params[0])) return Result(Boolean, 'true')
def getTopNProducts(self, params): if len(params) == 1: return Result(None, Structs.getXmlRpcProductList(self.catalog.getTopNProducts(params[0]))) ptype = Structs.getProductTypeFromXmlRpc(params[1]) return Result(None, Structs.getXmlRpcProductList(self.catalog.getTopNProducts(params[0], ptype)))
def getProductPctTransferred(self, params): return Result(Double, str(self.tracker.getPctTransferred((Structs.getProductFromXmlRpc(params[0])))))
def getMetadata(self, params): return Result(None, self.catalog.getMetadata(Structs.getProductFromXmlRpc(params[0])).getHashtable())
def getRefPctTransferred(self, params): pct = self.tracker.getPctTransferred(Structs.getReferenceFromXmlRpc(params[0])) return Result(Double, str(pct))
def getProductReferences(self, params): p = Structs.getProductFromXmlRpc(params[0]) return Result(None, Structs.getXmlRpcReferences(self.catalog.getProductReferences(p)))
def isTransferComplete(self, params): return Result(Boolean, _toJavaBoolean(self.tracker.isTransferComplete(Structs.getProductFromXmlRpc(params[0]))))
def getProductsByProductType(self, params): ptype = Structs.getProductTypeFromXmlRpc(params[0]) return Result(None, Structs.getXmlRpcProductList(self.catalog.getProductsByProductType(ptype)))
def pagedQuery(self, params): ptype = Structs.getProductTypeFromXmlRpc(params[1]) query = Structs.getQueryFromXmlRpc(params[0]) return Result(None, Structs.getXmlRpcProductPage(self.catalog.pagedQuery(query, ptype, params[2])))
def getElementByName(self, params): return Structs.getXmlRpcElement(self.catalog.getValidationLayer().getElementByName(params[0]))
def getPrevPage(self, params): ptype = Structs.getProductTypeFromXmlRpc(params[0]) page = Structs.getProductPageFromXmlRpc(params[1]) return Result(None, Structs.getXmlRpcProductPage(self.catalog.getPrevPage(ptype, page)))
def getProductTypeById(self, params): ptype = self.repo.getProductTypeById(params[0]) return Result(None, Structs.getXmlRpcProductType(ptype))
def addProductType(self, params): ptype = Structs.getProductTypeFromXmlRpc(params[0]) self.repo.addProductType(ptype) return Result(None, ptype.getProductTypeId())
def addMetadata(self, params): p = Structs.getProductFromXmlRpc(params[0]) m = Metadata() m.addMetadata(params[1]) self.catalog.addMetadata(m, p) return Result(Boolean, 'true')
def getProductTypeByName(self, params): return Result(None, Structs.getXmlRpcProductType(self.repo.getProductTypeByName(params[0])))