feat: Add owners and physical/virtual status to Datasets API list endpoint (#10025)

* Add owners and physical/virtual status to Datasets API list endpoint

* black

* Update type definition for DatasourceKind

Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com>

* Fixin' tests and mypy

Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com>
This commit is contained in:
Will Barrett 2020-06-10 12:04:40 -07:00 committed by GitHub
parent 5339d31ed1
commit 4ef26993e2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 22 additions and 0 deletions

1
.gitignore vendored
View File

@ -23,6 +23,7 @@
.bento*
.cache-loader
.coverage
cover
.DS_Store
.eggs
.envrc

View File

@ -15,6 +15,7 @@
# specific language governing permissions and limitations
# under the License.
import json
from enum import Enum
from typing import Any, Dict, Hashable, List, Optional, Type, Union
from flask_appbuilder.security.sqla.models import User
@ -51,6 +52,11 @@ COLUMN_FORM_DATA_PARAMS = [
]
class DatasourceKind(str, Enum):
VIRTUAL = "virtual"
PHYSICAL = "physical"
class BaseDatasource(
AuditMixinNullable, ImportMixin
): # pylint: disable=too-many-public-methods
@ -101,6 +107,13 @@ class BaseDatasource(
owners: List[User]
update_from_object_fields: List[str]
@property
def kind(self) -> str:
if self.sql:
return DatasourceKind.VIRTUAL.value
return DatasourceKind.PHYSICAL.value
@declared_attr
def slices(self) -> RelationshipProperty:
return relationship(

View File

@ -78,6 +78,11 @@ class DatasetRestApi(BaseSupersetModelRestApi):
"changed_on",
"default_endpoint",
"explore_url",
"kind",
"owners.id",
"owners.username",
"owners.first_name",
"owners.last_name",
"schema",
"table_name",
]

View File

@ -23,6 +23,7 @@ import prison
import yaml
from sqlalchemy.sql import func
import tests.test_app
from superset.connectors.sqla.models import SqlaTable, SqlMetric, TableColumn
from superset.dao.exceptions import (
DAOCreateFailedError,
@ -96,6 +97,8 @@ class DatasetApiTests(SupersetTestCase):
"default_endpoint",
"explore_url",
"id",
"kind",
"owners",
"schema",
"table_name",
]