| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- // Copyright 2019 Yunion
- //
- // 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 ansible
- import (
- "bytes"
- )
- // Module represents name and args of ansible module to execute
- type Module struct {
- // Name is ansible module name
- Name string
- // Args is a list of module arguments in form of key=value
- Args []string
- }
- // Host represents an ansible host
- type Host struct {
- // Name denotes the host to operate on
- Name string
- // Vars is a map recording host vars
- Vars map[string]string
- }
- // GetVar returns variable value. Second return value will be false if the
- // variable does not exist
- func (h *Host) GetVar(k string) (v string, exist bool) {
- if len(h.Vars) == 0 {
- return
- }
- v, exist = h.Vars[k]
- return
- }
- // SetVar sets variable k to value v
- func (h *Host) SetVar(k, v string) {
- if h.Vars == nil {
- h.Vars = map[string]string{
- k: v,
- }
- return
- }
- h.Vars[k] = v
- }
- // Inventory contains a list of ansible hosts
- type Inventory struct {
- Hosts []Host
- }
- // IsEmpty returns true if the inventory is empty
- func (i *Inventory) IsEmpty() bool {
- return len(i.Hosts) == 0
- }
- // Data returns serialized form of the inventory as represented on disk
- func (i *Inventory) Data() []byte {
- b := &bytes.Buffer{}
- for _, h := range i.Hosts {
- b.WriteString(h.Name)
- for k, v := range h.Vars {
- b.WriteRune(' ')
- b.WriteString(k)
- b.WriteRune('=')
- b.WriteString(v)
- }
- b.WriteRune('\n')
- }
- return b.Bytes()
- }
|