-
-
Notifications
You must be signed in to change notification settings - Fork 5
/
actions.go
100 lines (84 loc) · 3.83 KB
/
actions.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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
package cobblerclient
// Sync the system.
// Returns an error if anything went wrong
func (c *Client) Sync() error {
_, err := c.Call("sync", c.Token)
return err
}
// BackgroundSync runs a "cobbler sync" in asynchronously in the background. The returned string is the event id
// which can be used to query the GetEventLog endpoint.
func (c *Client) BackgroundSync(options BackgroundSyncOptions) (string, error) {
res, err := c.Call("background_sync", options, c.Token)
return returnString(res, err)
}
// BackgroundSyncSystems runs the "cobbler syncsystems" action which only executes a Cobbler sync for a specific
// subset of systems.
func (c *Client) BackgroundSyncSystems(options BackgroundSyncSystemsOptions) (string, error) {
res, err := c.Call("background_syncsystems", options, c.Token)
return returnString(res, err)
}
// Check runs the "cobbler check" action and list all possible points for improvements on server side as a
// return value.
func (c *Client) Check() (*[]string, error) {
var checks []string
result, err := c.Call("check", c.Token)
for _, check := range result.([]interface{}) {
checks = append(checks, check.(string))
}
return &checks, err
}
// BackgroundBuildiso builds an ISO file on the server. The return value is the task ID which is started on the
// server.
func (c *Client) BackgroundBuildiso(options BuildisoOptions) (string, error) {
res, err := c.Call("background_buildiso", options, c.Token)
return returnString(res, err)
}
// BackgroundAclSetup applies updated ACLs on the Cobbler system.
func (c *Client) BackgroundAclSetup(options AclSetupOptions) (string, error) {
res, err := c.Call("background_aclsetup", options, c.Token)
return returnString(res, err)
}
// BackgroundHardlink tries to save space inside the web directory through hardlinking identical files.
func (c *Client) BackgroundHardlink() (string, error) {
res, err := c.Call("background_hardlink", map[string]string{}, c.Token)
return returnString(res, err)
}
// BackgroundValidateAutoinstallFiles checks if the files generated by Cobbler are valid from a syntax perspective.
func (c *Client) BackgroundValidateAutoinstallFiles() (string, error) {
res, err := c.Call("background_validate_autoinstall_files", map[string]string{}, c.Token)
return returnString(res, err)
}
// BackgroundReplicate replicates the Cobbler server to the target defined in the arguments.
func (c *Client) BackgroundReplicate(options ReplicateOptions) (string, error) {
res, err := c.Call("background_replicate", options, c.Token)
return returnString(res, err)
}
// BackgroundImport runs an import locally on the server with the specified options.
func (c *Client) BackgroundImport(options BackgroundImportOptions) (string, error) {
res, err := c.Call("background_import", options, c.Token)
return returnString(res, err)
}
// BackgroundReposync runs a reposyonc asynchronous in the background on the server.
func (c *Client) BackgroundReposync(options BackgroundReposyncOptions) (string, error) {
res, err := c.Call("background_reposync", options, c.Token)
return returnString(res, err)
}
// BackgroundMkLoaders runs the mkloaders action on the server in the background.
func (c *Client) BackgroundMkLoaders() (string, error) {
res, err := c.Call("background_mkloaders", map[string]string{}, c.Token)
return returnString(res, err)
}
// BackgroundPowerSystem executes power operations for a given list of systems.
func (c *Client) BackgroundPowerSystem(options BackgroundPowerSystemOptions) (string, error) {
res, err := c.Call("background_power_system", options, c.Token)
return returnString(res, err)
}
// PowerSystem executes a power operation for a single system synchronously.
func (c *Client) PowerSystem(systemId, power string) (bool, error) {
result, err := c.Call("power_system", systemId, power, c.Token)
if err != nil {
return false, err
} else {
return result.(bool), err
}
}