def test_store_exist_package(self): with tempfile.TemporaryDirectory() as root_dir: store = self.create_store(root_dir) package = self.create_and_store_package(store) with self.assertRaises(rift.package.store.PackageStoreError): store.store_package(package)
def store_package(self, package): store = self.get_package_store(package) try: store.store_package(package) except rift.package.store.PackageExistsError as e: store.update_package(package) stored_package = store.get_package(package.descriptor_id) return stored_package
def update_package(self, package): store = self.get_package_store(package) try: store.update_package(package) except rift.package.store.PackageNotFoundError as e: # If the package doesn't exist, then it is possible the descriptor was onboarded # out of band. In that case, just store the package as is self.log.warning("Package not found, storing new package instead.") store.store_package(package) stored_package = store.get_package(package.descriptor_id) return stored_package
def store_package(self, package): store = self.get_package_store(package) try: store.store_package(package) except rift.package.store.PackageExistsError as e: #TODO: The package store needs to stay in sync with configured #descriptors (descriptor delete -> stored package deletion). Until #that happens, we should just update the stored package. #raise MessageException(OnboardDescriptorExistsError(package.descriptor_id)) from e store.update_package(package) stored_package = store.get_package(package.descriptor_id) return stored_package
def create_and_store_package(self, store): package = self.create_nsd_package() store.store_package(package) return package