-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathmachine.go
41 lines (35 loc) · 842 Bytes
/
machine.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
package api
import "encoding/json"
type Machine struct {
Name string `json:"name"`
MacAddress string `json:"macaddress"`
Profile string `json:"profile"`
}
func (m Machine) Save() error {
return PutToBucket("machines", m.Name, &m)
}
func DeleteMachineByName(name string) error {
return DeleteFromBucket("machines", name)
}
func GetMachineByName(name string) (Machine, error) {
var m Machine
if err := GetFromBucket("machines", name, &m); err != nil {
return m, err
}
return m, nil
}
func GetMachines() ([]Machine, error) {
machines := make([]Machine, 0)
err := GetAllFromBucket("machines", func(k, v []byte) error {
var m Machine
if err := json.Unmarshal(v, &m); err != nil {
return err
}
machines = append(machines, m)
return nil
})
if err != nil {
return machines, err
}
return machines, nil
}