class SchemaspaceRemove(SchemaspaceBase): """Handles the 'remove' subcommand functionality for a specific schemaspace.""" name_option = CliOption( "--name", name="name", description="The name of the metadata instance to remove", required=True) # 'Remove' options options = [name_option] def __init__(self, **kwargs): super().__init__(**kwargs) self.metadata_manager = MetadataManager(schemaspace=self.schemaspace) def start(self): super().start() # process options name = self.name_option.value try: self.metadata_manager.get(name) except MetadataNotFoundError as mnfe: self.log_and_exit(mnfe) except ValidationError: # Probably deleting invalid instance pass self.metadata_manager.remove(name) print( f"Metadata instance '{name}' removed from schemaspace '{self.schemaspace}'." )
def catalog_instance(component_cache, request): """Creates an instance of a component catalog and removes after test.""" instance_metadata = request.param instance_name = "component_cache" md_mgr = MetadataManager(schemaspace=ComponentCatalogs.COMPONENT_CATALOGS_SCHEMASPACE_ID) catalog = md_mgr.create(instance_name, Metadata(**instance_metadata)) component_cache.wait_for_all_cache_tasks() yield catalog md_mgr.remove(instance_name)
def airflow_runtime_instance(): """Creates an airflow RTC and removes it after test.""" instance_name = "valid_airflow_test_config" instance_config_file = Path(__file__).parent / "resources" / "runtime_configs" / f"{instance_name}.json" with open(instance_config_file, "r") as fd: instance_config = json.load(fd) md_mgr = MetadataManager(schemaspace=Runtimes.RUNTIMES_SCHEMASPACE_ID) # clean possible orphaned instance... try: md_mgr.remove(instance_name) except Exception: pass runtime_instance = md_mgr.create(instance_name, Metadata(**instance_config)) yield runtime_instance.name md_mgr.remove(runtime_instance.name)
def metadata_manager_with_teardown(jp_environ): """ This fixture provides a MetadataManager instance for certain tests that modify the component catalog. This ensures the catalog instance is removed even when the test fails """ metadata_manager = MetadataManager(schemaspace=ComponentCatalogs.COMPONENT_CATALOGS_SCHEMASPACE_ID) # Run test with provided metadata manager yield metadata_manager # Remove test catalog try: if metadata_manager.get(TEST_CATALOG_NAME): metadata_manager.remove(TEST_CATALOG_NAME) except Exception: pass
async def delete(self, schemaspace, resource): schemaspace = url_unescape(schemaspace) resource = url_unescape(resource) parent = self.settings.get("elyra") try: self.log.debug( f"MetadataHandler: Deleting metadata instance '{resource}' in schemaspace '{schemaspace}'..." ) metadata_manager = MetadataManager(schemaspace=schemaspace, parent=parent) metadata_manager.remove(resource) except (ValidationError, ValueError) as err: raise web.HTTPError(400, str(err)) from err except PermissionError as err: raise web.HTTPError(403, str(err)) from err except MetadataNotFoundError as err: raise web.HTTPError(404, str(err)) from err except Exception as err: raise web.HTTPError(500, repr(err)) from err self.set_status(204) self.finish()