-
Notifications
You must be signed in to change notification settings - Fork 0
/
app_sp_job.go
69 lines (62 loc) · 1.77 KB
/
app_sp_job.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package main
import (
"context"
"fmt"
"github.com/spf13/cobra"
cmder "github.com/yaegashi/cobra-cmder"
msgraph "github.com/yaegashi/msgraph.go/beta"
)
type AppSPJob struct {
*AppSP
JobID string
SynchronizationJobList []msgraph.SynchronizationJob
SynchronizationJobListRB *msgraph.SynchronizationJobsCollectionRequestBuilder
SynchronizationJob *msgraph.SynchronizationJob
SynchronizationJobRB *msgraph.SynchronizationJobRequestBuilder
}
func (app *AppSP) AppSPJobComder() cmder.Cmder {
return &AppSPJob{AppSP: app}
}
func (app *AppSPJob) Cmd() *cobra.Command {
cmd := &cobra.Command{
Use: "job",
Short: "Synchronization job commands",
SilenceUsage: true,
}
cmd.PersistentFlags().StringVarP(&app.JobID, "job-id", "", "AD2AADProvisioning", "job ID / tempalte ID")
return cmd
}
func (app *AppSPJob) GetSynchronizationJobList(ctx context.Context) error {
if app.ServicePrincipal == nil {
err := app.GetServicePrincipal(ctx)
if err != nil {
return err
}
}
app.SynchronizationJobListRB = app.SynchronizationRB.Jobs()
jobs, err := app.SynchronizationJobListRB.Request().Get(ctx)
if err != nil {
return err
}
app.SynchronizationJobList = jobs
return nil
}
func (app *AppSPJob) GetSynchronizationJob(ctx context.Context) error {
if app.SynchronizationJobList == nil {
err := app.GetSynchronizationJobList(ctx)
if err != nil {
return err
}
}
for _, job := range app.SynchronizationJobList {
if *job.ID == app.JobID || *job.TemplateID == app.JobID {
app.SynchronizationJob = &job
break
}
}
if app.SynchronizationJob == nil {
return fmt.Errorf("Synchronization Job for %q is not found", app.JobID)
}
app.SynchronizationJobRB = app.SynchronizationJobListRB.ID(*app.SynchronizationJob.ID)
return nil
}