Skip to content

Commit

Permalink
Merge pull request #279 from 0xff-dev/fix-gql
Browse files Browse the repository at this point in the history
fix: add version count and file count, update gql
  • Loading branch information
bjwswang authored Nov 23, 2023
2 parents 2a054d2 + e45ed46 commit f0ce943
Show file tree
Hide file tree
Showing 9 changed files with 316 additions and 192 deletions.
350 changes: 205 additions & 145 deletions graphql-server/go-server/graph/generated/generated.go

Large diffs are not rendered by default.

13 changes: 8 additions & 5 deletions graphql-server/go-server/graph/generated/models_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion graphql-server/go-server/graph/impl/dataset.resolvers.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

46 changes: 33 additions & 13 deletions graphql-server/go-server/graph/schema/dataset.gql
Original file line number Diff line number Diff line change
@@ -1,30 +1,32 @@
query listDatasets($input: ListDatasetInput, $versionsInput: ListVersionedDatasetInput!, $filesInput: FileFilter){
Dataset {
listDatasets(input: $input) {
listDatasets(input: $input) {
totalCount
nodes {
... on Dataset {
name
namespace
creator
displayName
updateTimestamp
creationTimestamp
contentType
field
versionCount
versions(input: $versionsInput) {
totalCount
nodes {
... on VersionedDataset {
name
namespace
displayName
description
syncStatus
released
dataProcessStatus
updateTimestamp
version
files(input: $filesInput) {
nodes {
... on F {
path
fileType
count
}
}
totalCount
}
}
}
Expand All @@ -35,23 +37,41 @@ query listDatasets($input: ListDatasetInput, $versionsInput: ListVersionedDatase
}
}

query getDataset($name: String!, $namespace: String!){
query getDataset($name: String!, $namespace: String!, $versionsInput: ListVersionedDatasetInput!, $filesInput: FileFilter){
Dataset {
getDataset(name:$name, namespace:$namespace) {
name
namespace
creator
displayName
updateTimestamp
creationTimestamp
contentType
field
versionCount
versions(input: $versionsInput) {
totalCount
nodes {
... on VersionedDataset {
name
namespace
displayName
description
syncStatus
released
dataProcessStatus
updateTimestamp
version
files(input: $filesInput) {
totalCount
}
}
}
}
}
}
}



mutation createDataset($input: CreateDatasetInput){
Dataset {
createDataset(input: $input){
Expand All @@ -75,6 +95,6 @@ mutation updateDataset($input: UpdateDatasetInput){

mutation deleteDatasets($input: DeleteDatasetInput){
Dataset {
deleteDatasets(input: $input)
deleteDatasets(input: $input)
}
}
7 changes: 3 additions & 4 deletions graphql-server/go-server/graph/schema/dataset.graphqls
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ type Dataset {
"""更新时间, 这里更新指文件同步,或者数据处理完成后,做的更新操作的时间"""
updateTimestamp: Time

"""创建时间"""
creationTimestamp: Time
"""数据集类型,文本,图片,视频"""
contentType: String!

Expand All @@ -47,9 +49,6 @@ type Dataset {
支持通过标签(somelabel=abc),字段(metadata.name=abc)进行过滤
"""
versions(input: ListVersionedDatasetInput!): PaginatedResult!

"""数据集的总版本数量"""
versionCount: Int!
}

input CreateDatasetInput {
Expand Down Expand Up @@ -152,4 +151,4 @@ extend type Query {

extend type Mutation {
Dataset: DatasetMutation
}
}
46 changes: 31 additions & 15 deletions graphql-server/go-server/graph/schema/versioned_dataset.gql
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ mutation createVersionedDataset($input:CreateVersionedDatasetInput!){
version
updateTimestamp
creationTimestamp
fileCount
released
syncStatus
dataProcessStatus
Expand Down Expand Up @@ -36,9 +35,17 @@ query getVersionedDataset($name: String!, $namespace: String!, $fileInput: FileF
getVersionedDataset(name: $name, namespace: $namespace) {
name
displayName
namespace
description
creator
namespace
version
updateTimestamp
creationTimestamp
released
syncStatus
dataProcessStatus
files(input: $fileInput){
totalCount
nodes {
... on F {
path
Expand All @@ -55,19 +62,28 @@ query getVersionedDataset($name: String!, $namespace: String!, $fileInput: FileF
query listVersionedDatasets($input: ListVersionedDatasetInput!, $fileInput: FileFilter) {
VersionedDataset{
listVersionedDatasets(input: $input) {
nodes {
... on VersionedDataset {
name
displayName
namespace
creator
files(input: $fileInput){
nodes {
... on F {
path
time
fileType
count
totalCount
nodes {
... on VersionedDataset {
name
displayName
description
creator
namespace
version
updateTimestamp
creationTimestamp
released
syncStatus
dataProcessStatus
files(input: $fileInput){
totalCount
nodes {
... on F {
path
time
fileType
count
}
}
}
Expand Down
11 changes: 7 additions & 4 deletions graphql-server/go-server/graph/schema/versioned_dataset.graphqls
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ type VersionedDataset {
"""展示名字, 与metadat.name不一样,这个展示名字是可以用中文的"""
displayName: String!

"""描述"""
description: String

"""所属的数据集"""
dataset: TypedObjectReference!

Expand All @@ -36,9 +39,6 @@ type VersionedDataset {
"""版本名称"""
version: String!

"""该数据集版本所包含的数据总量"""
fileCount: Int!

"""该版本是否已经发布, 0是未发布,1是已经发布"""
released: Int!

Expand Down Expand Up @@ -155,6 +155,9 @@ input UpdateVersionedDatasetInput {
如果传递一个空的数组过去,认为是删除全部文件。
"""
fileGroups: [FileGroup!]

"""修改数据集版本发布状态"""
released: Int
}


Expand All @@ -167,7 +170,7 @@ input DeleteVersionedDatasetInput {

input ListVersionedDatasetInput {
name: String
namespace: String!
namespace: String
displayName: String
labelSelector: String
fieldSelector: String
Expand Down
11 changes: 11 additions & 0 deletions graphql-server/go-server/pkg/dataset/dataset.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ func dataset2model(obj *unstructured.Unstructured) (*generated.Dataset, error) {
ds := &generated.Dataset{}
ds.Name = obj.GetName()
ds.Namespace = obj.GetNamespace()
n := obj.GetCreationTimestamp()
ds.CreationTimestamp = &n.Time
if r := obj.GetLabels(); len(r) > 0 {
l := make(map[string]any)
for k, v := range r {
Expand All @@ -63,6 +65,15 @@ func dataset2model(obj *unstructured.Unstructured) (*generated.Dataset, error) {
ds.DisplayName = dataset.Spec.DisplayName
ds.ContentType = dataset.Spec.ContentType
ds.Field = &dataset.Spec.Field
first := true
for _, cond := range dataset.Status.Conditions {
if !cond.LastSuccessfulTime.IsZero() {
if first || ds.UpdateTimestamp.Before(cond.LastTransitionTime.Time) {
ds.UpdateTimestamp = &cond.LastTransitionTime.Time
first = false
}
}
}
return ds, nil
}

Expand Down
22 changes: 17 additions & 5 deletions graphql-server/go-server/pkg/versioneddataset/versioned_dataset.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ func versionedDataset2model(obj *unstructured.Unstructured) (*generated.Versione
vds.CreationTimestamp = obj.GetCreationTimestamp().Time
vds.Creator = &versioneddataset.Spec.Creator
vds.DisplayName = versioneddataset.Spec.DisplayName
vds.Description = &versioneddataset.Spec.Description
vds.Dataset = generated.TypedObjectReference{
APIGroup: versioneddataset.Spec.Dataset.APIGroup,
Kind: versioneddataset.Spec.Dataset.Kind,
Expand All @@ -80,17 +81,21 @@ func versionedDataset2model(obj *unstructured.Unstructured) (*generated.Versione

vds.Version = versioneddataset.Spec.Version

first := true
for _, cond := range versioneddataset.Status.Conditions {
if cond.Type == v1alpha1.TypeReady {
syncStatus := string(cond.Reason)
vds.SyncStatus = &syncStatus
}
if !cond.LastTransitionTime.IsZero() {
if first || vds.UpdateTimestamp.Before(cond.LastSuccessfulTime.Time) {
vds.UpdateTimestamp = &cond.LastTransitionTime.Time
first = false
}
}
}

vds.Released = int(versioneddataset.Spec.Released)
for _, fg := range versioneddataset.Spec.FileGroups {
vds.FileCount += len(fg.Paths)
}
return vds, nil
}

Expand All @@ -107,7 +112,7 @@ func VersionFiles(ctx context.Context, c dynamic.Interface, input *generated.Ver
objectInfoList := minioutils.ListObjectCompleteInfo(ctx, input.Namespace, prefix, minioClient, -1)
result := make([]generated.PageNode, 0)
for _, obj := range objectInfoList {
if keyword != "" && strings.Contains(obj.Key, keyword) {
if keyword == "" || strings.Contains(obj.Key, keyword) {
result = append(result, generated.F{
Path: obj.Key,
FileType: obj.ContentType,
Expand Down Expand Up @@ -150,7 +155,11 @@ func ListVersionedDatasets(ctx context.Context, c dynamic.Interface, input *gene
listOptions.FieldSelector = *input.FieldSelector
}
}
list, err := c.Resource(versioneddatasetSchem).Namespace(input.Namespace).List(ctx, listOptions)
ns := "default"
if input.Namespace != nil {
ns = *input.Namespace
}
list, err := c.Resource(versioneddatasetSchem).Namespace(ns).List(ctx, listOptions)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -245,6 +254,9 @@ func UpdateVersionedDataset(ctx context.Context, c dynamic.Interface, input *gen
}
obj.SetLabels(l)
obj.SetAnnotations(a)
if input.Released != nil {
_ = unstructured.SetNestedField(obj.Object, *input.Released, "spec", "released")
}
displayname, _, _ := unstructured.NestedString(obj.Object, "spec", "displayName")
description, _, _ := unstructured.NestedString(obj.Object, "spec", "description")
if input.DisplayName != "" && input.DisplayName != displayname {
Expand Down

0 comments on commit f0ce943

Please sign in to comment.