コード例 #1
0
ファイル: backend.py プロジェクト: EDRN/ecas-backend
	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())
コード例 #2
0
ファイル: backend.py プロジェクト: EDRN/ecas-backend
	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())
コード例 #3
0
ファイル: backend.py プロジェクト: EDRN/ecas-backend
	def getNumProducts(self, params):
		ptype = Structs.getProductTypeFromXmlRpc(params[0])
		return Result(Integer, str(self.catalog.getNumProducts(ptype)))
コード例 #4
0
ファイル: backend.py プロジェクト: EDRN/ecas-backend
	def catalogProduct(self, params):
		p = Structs.getProductFromXmlRpc(params[0])
		return Result(None, self.catalog.addProduct(p))
コード例 #5
0
ファイル: backend.py プロジェクト: EDRN/ecas-backend
	def getProductByName(self, params):
		return Result(None, Structs.getXmlRpcProduct(self.catalog.getProductByName(params[0])))
コード例 #6
0
ファイル: backend.py プロジェクト: EDRN/ecas-backend
	def getElementsByProductType(self, params):
		ptype = Structs.getProductTypeFromXmlRpc(params[0])
		return Structs.getXmlRpcElementList(self.catalog.getValidationLayer().getElements(ptype))
コード例 #7
0
ファイル: backend.py プロジェクト: EDRN/ecas-backend
	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())
コード例 #8
0
ファイル: backend.py プロジェクト: EDRN/ecas-backend
	def getProductTypes(self, params):
		return Result(None, Structs.getXmlRpcProductList(self.repo.getProductTypes()))
コード例 #9
0
ファイル: backend.py プロジェクト: EDRN/ecas-backend
	def setProductTransferStatus(self, params):
		self.catalog.setProductTransferStatus(Structs.getProductFromXmlRpc(params[0]))
		return Result(Boolean, 'true')
コード例 #10
0
ファイル: backend.py プロジェクト: EDRN/ecas-backend
	def getCurrentFileTransfer(self, params):
		status = self.tracker.getCurrentFileTransfer()
		if status is None:
			return Result(None, Hashtable())
		else:
			return Result(None, Structs.getXmlRpcFileTransferStatus(status))
コード例 #11
0
ファイル: backend.py プロジェクト: EDRN/ecas-backend
	def removeProductTransferStatus(self, params):
		self.tracker.removeProductTransferStatus(Structs.getProductFromXmlRpc(params[0]))
		return Result(Boolean, 'true')
コード例 #12
0
ファイル: backend.py プロジェクト: EDRN/ecas-backend
	def transferringProduct(self, params):
		self.tracker.transferringProduct(Structs.getProductFromXmlRpc(params[0]))
		return Result(Boolean, 'true')
コード例 #13
0
ファイル: backend.py プロジェクト: EDRN/ecas-backend
	def addProductReferences(self, params):
		self.catalog.addProductReferences(Structs.getProductFromXmlRpc(params[0]))
		return Result(Boolean, 'true')
コード例 #14
0
ファイル: backend.py プロジェクト: EDRN/ecas-backend
	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)))
コード例 #15
0
ファイル: backend.py プロジェクト: EDRN/ecas-backend
	def getProductPctTransferred(self, params):
		return Result(Double, str(self.tracker.getPctTransferred((Structs.getProductFromXmlRpc(params[0])))))
コード例 #16
0
ファイル: backend.py プロジェクト: EDRN/ecas-backend
	def getMetadata(self, params):
		return Result(None, self.catalog.getMetadata(Structs.getProductFromXmlRpc(params[0])).getHashtable())
コード例 #17
0
ファイル: backend.py プロジェクト: EDRN/ecas-backend
	def getRefPctTransferred(self, params):
		pct = self.tracker.getPctTransferred(Structs.getReferenceFromXmlRpc(params[0]))
		return Result(Double, str(pct))
コード例 #18
0
ファイル: backend.py プロジェクト: EDRN/ecas-backend
	def getProductReferences(self, params):
		p = Structs.getProductFromXmlRpc(params[0])
		return Result(None, Structs.getXmlRpcReferences(self.catalog.getProductReferences(p)))
コード例 #19
0
ファイル: backend.py プロジェクト: EDRN/ecas-backend
	def isTransferComplete(self, params):
		return Result(Boolean, _toJavaBoolean(self.tracker.isTransferComplete(Structs.getProductFromXmlRpc(params[0]))))
コード例 #20
0
ファイル: backend.py プロジェクト: EDRN/ecas-backend
	def getProductsByProductType(self, params):
		ptype = Structs.getProductTypeFromXmlRpc(params[0])
		return Result(None, Structs.getXmlRpcProductList(self.catalog.getProductsByProductType(ptype)))
コード例 #21
0
ファイル: backend.py プロジェクト: EDRN/ecas-backend
	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])))
コード例 #22
0
ファイル: backend.py プロジェクト: EDRN/ecas-backend
	def getElementByName(self, params):
		return Structs.getXmlRpcElement(self.catalog.getValidationLayer().getElementByName(params[0]))
コード例 #23
0
ファイル: backend.py プロジェクト: EDRN/ecas-backend
	def getPrevPage(self, params):
		ptype = Structs.getProductTypeFromXmlRpc(params[0])
		page = Structs.getProductPageFromXmlRpc(params[1])
		return Result(None, Structs.getXmlRpcProductPage(self.catalog.getPrevPage(ptype, page)))
コード例 #24
0
ファイル: backend.py プロジェクト: EDRN/ecas-backend
	def getProductTypeById(self, params):
		ptype = self.repo.getProductTypeById(params[0])
		return Result(None, Structs.getXmlRpcProductType(ptype))
コード例 #25
0
ファイル: backend.py プロジェクト: EDRN/ecas-backend
	def addProductType(self, params):
		ptype = Structs.getProductTypeFromXmlRpc(params[0])
		self.repo.addProductType(ptype)
		return Result(None, ptype.getProductTypeId())
コード例 #26
0
ファイル: backend.py プロジェクト: EDRN/ecas-backend
	def addMetadata(self, params):
		p = Structs.getProductFromXmlRpc(params[0])
		m = Metadata()
		m.addMetadata(params[1])
		self.catalog.addMetadata(m, p)
		return Result(Boolean, 'true')
コード例 #27
0
ファイル: backend.py プロジェクト: EDRN/ecas-backend
	def getProductTypeByName(self, params):
		return Result(None, Structs.getXmlRpcProductType(self.repo.getProductTypeByName(params[0])))