@@ -55,9 +55,9 @@ const (
5555 """
5656 The UInt64 scalar type represents an unsigned 64‐bit numeric non‐fractional value.
5757 UInt64 can represent values in range [0,(2^64 - 1)].
58- """
58+ """
5959 scalar UInt64
60-
60+
6161 """
6262 The DateTime scalar type represents date and time as a string in RFC3339 format.
6363 For example: "1985-04-12T23:20:50.52Z" represents 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC.
@@ -243,14 +243,19 @@ const (
243243 anonymous: Boolean
244244 }
245245
246+ input TaskInput {
247+ id: String!
248+ }
249+
246250 type Response {
247251 code: String
248252 message: String
249253 }
250254
251255 type ExportPayload {
252- response: Response
253256 exportedFiles: [String]
257+ response: Response
258+ taskId: String
254259 }
255260
256261 type DrainingPayload {
@@ -261,6 +266,26 @@ const (
261266 response: Response
262267 }
263268
269+ type TaskPayload {
270+ kind: TaskKind
271+ status: TaskStatus
272+ lastUpdated: DateTime
273+ }
274+
275+ enum TaskStatus {
276+ Queued
277+ Running
278+ Failed
279+ Success
280+ Unknown
281+ }
282+
283+ enum TaskKind {
284+ Backup
285+ Export
286+ Unknown
287+ }
288+
264289 input ConfigInput {
265290 """
266291 Estimated memory the caches can take. Actual usage by the process would be
@@ -367,6 +392,7 @@ const (
367392 health: [NodeState]
368393 state: MembershipState
369394 config: Config
395+ task(input: TaskInput!): TaskPayload
370396 ` + adminQueries + `
371397 }
372398
@@ -724,7 +750,6 @@ func newAdminResolver(
724750}
725751
726752func newAdminResolverFactory () resolve.ResolverFactory {
727-
728753 adminMutationResolvers := map [string ]resolve.MutationResolverFunc {
729754 "addNamespace" : resolveAddNamespace ,
730755 "backup" : resolveBackup ,
@@ -757,18 +782,21 @@ func newAdminResolverFactory() resolve.ResolverFactory {
757782 WithQueryResolver ("listBackups" , func (q schema.Query ) resolve.QueryResolver {
758783 return resolve .QueryResolverFunc (resolveListBackups )
759784 }).
760- WithMutationResolver ("updateGQLSchema" , func (m schema.Mutation ) resolve.MutationResolver {
761- return resolve .MutationResolverFunc (
762- func (ctx context.Context , m schema.Mutation ) (* resolve.Resolved , bool ) {
763- return & resolve.Resolved {Err : errors .Errorf (errMsgServerNotReady ), Field : m },
764- false
765- })
785+ WithQueryResolver ("task" , func (q schema.Query ) resolve.QueryResolver {
786+ return resolve .QueryResolverFunc (resolveTask )
766787 }).
767788 WithQueryResolver ("getGQLSchema" , func (q schema.Query ) resolve.QueryResolver {
768789 return resolve .QueryResolverFunc (
769790 func (ctx context.Context , query schema.Query ) * resolve.Resolved {
770791 return & resolve.Resolved {Err : errors .Errorf (errMsgServerNotReady ), Field : q }
771792 })
793+ }).
794+ WithMutationResolver ("updateGQLSchema" , func (m schema.Mutation ) resolve.MutationResolver {
795+ return resolve .MutationResolverFunc (
796+ func (ctx context.Context , m schema.Mutation ) (* resolve.Resolved , bool ) {
797+ return & resolve.Resolved {Err : errors .Errorf (errMsgServerNotReady ), Field : m },
798+ false
799+ })
772800 })
773801 for gqlMut , resolver := range adminMutationResolvers {
774802 // gotta force go to evaluate the right function at each loop iteration
0 commit comments