-
Notifications
You must be signed in to change notification settings - Fork 470
/
schedaction.go
72 lines (60 loc) 路 2.57 KB
/
schedaction.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
/* -------------------------------------------------------------------------- */
/* Copyright 2002-2023, OpenNebula Project, OpenNebula Systems */
/* */
/* Licensed under the Apache License, Version 2.0 (the "License"); you may */
/* not use this file except in compliance with the License. You may obtain */
/* a copy of the License at */
/* */
/* http://www.apache.org/licenses/LICENSE-2.0 */
/* */
/* Unless required by applicable law or agreed to in writing, software */
/* distributed under the License is distributed on an "AS IS" BASIS, */
/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */
/* See the License for the specific language governing permissions and */
/* limitations under the License. */
/*--------------------------------------------------------------------------- */
package shared
import (
"encoding/xml"
dyn "github.com/OpenNebula/one/src/oca/go/src/goca/dynamic"
)
// SchedAction is a scheduled action on VM
type SchedAction struct {
dyn.Vector
}
// SchedAction define keys for scheduled action
type SchedActionKeys string
const (
SchedActionVec string = "SCHED_ACTION"
ActionID SchedActionKeys = "ID"
ParentID SchedActionKeys = "PARENT_ID"
Action SchedActionKeys = "ACTION"
Time SchedActionKeys = "TIME"
Repeat SchedActionKeys = "REPEAT"
Days SchedActionKeys = "DAYS"
EndType SchedActionKeys = "END_TYPE"
EndValue SchedActionKeys = "END_VALUE"
Done SchedActionKeys = "DONE"
)
// AddSchedAction returns a Scheduled Action structure
func NewSchedAction() *SchedAction {
return &SchedAction{
dyn.Vector{XMLName: xml.Name{Local: SchedActionVec}},
}
}
// Add adds a key, value pair to Scheduled Action
func (sa *SchedAction) Add(key SchedActionKeys, value interface{}) {
sa.AddPair(string(key), value)
}
// ID returns the Scheduled Action ID as an integer
func (sa *SchedAction) ID() (int, error) {
return sa.GetInt(string(ActionID))
}
// Get return the string value for Scheduled Action key
func (t *SchedAction) Get(key SchedActionKeys) (string, error) {
return t.GetStr(string(key))
}
// GetI returns the integer value for a disk key
func (d *SchedAction) GetI(key SchedActionKeys) (int, error) {
return d.GetInt(string(key))
}