12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- package alils
- import (
- "encoding/json"
- "fmt"
- "io/ioutil"
- "net/http"
- "net/http/httputil"
- )
- // MachineGroupAttribute define the Attribute
- type MachineGroupAttribute struct {
- ExternalName string `json:"externalName"`
- TopicName string `json:"groupTopic"`
- }
- // MachineGroup define the machine Group
- type MachineGroup struct {
- Name string `json:"groupName"`
- Type string `json:"groupType"`
- MachineIDType string `json:"machineIdentifyType"`
- MachineIDList []string `json:"machineList"`
- Attribute MachineGroupAttribute `json:"groupAttribute"`
- CreateTime uint32
- LastModifyTime uint32
- project *LogProject
- }
- // Machine define the Machine
- type Machine struct {
- IP string
- UniqueID string `json:"machine-uniqueid"`
- UserdefinedID string `json:"userdefined-id"`
- }
- // MachineList define the Machine List
- type MachineList struct {
- Total int
- Machines []*Machine
- }
- // ListMachines returns machine list of this machine group.
- func (m *MachineGroup) ListMachines() (ms []*Machine, total int, err error) {
- h := map[string]string{
- "x-sls-bodyrawsize": "0",
- }
- uri := fmt.Sprintf("/machinegroups/%v/machines", m.Name)
- r, err := request(m.project, "GET", uri, h, nil)
- if err != nil {
- return
- }
- buf, err := ioutil.ReadAll(r.Body)
- if err != nil {
- return
- }
- if r.StatusCode != http.StatusOK {
- errMsg := &errorMessage{}
- err = json.Unmarshal(buf, errMsg)
- if err != nil {
- err = fmt.Errorf("failed to remove config from machine group")
- dump, _ := httputil.DumpResponse(r, true)
- fmt.Println(dump)
- return
- }
- err = fmt.Errorf("%v:%v", errMsg.Code, errMsg.Message)
- return
- }
- body := &MachineList{}
- err = json.Unmarshal(buf, body)
- if err != nil {
- return
- }
- ms = body.Machines
- total = body.Total
- return
- }
- // GetAppliedConfigs returns applied configs of this machine group.
- func (m *MachineGroup) GetAppliedConfigs() (confNames []string, err error) {
- confNames, err = m.project.GetAppliedConfigs(m.Name)
- return
- }
|