def run(self): self.validate() try: dataset = DatasetDAO.create(self._properties) except CreateFailedError as e: logger.exception(e.exception) raise DatasetCreateFailedError() return dataset
def run(self) -> Model: self.validate() try: # Creates SqlaTable (Dataset) dataset = DatasetDAO.create(self._properties, commit=False) # Updates columns and metrics from the dataset dataset.fetch_metadata(commit=False) # Add datasource access permission security_manager.add_permission_view_menu("datasource_access", dataset.get_perm()) # Add schema access permission if exists if dataset.schema: security_manager.add_permission_view_menu( "schema_access", dataset.schema_perm) db.session.commit() except (SQLAlchemyError, DAOCreateFailedError) as ex: logger.warning(ex, exc_info=True) db.session.rollback() raise DatasetCreateFailedError() return dataset