func addNodeForParams(params map[string]string, isRegister bool) (map[string]string, error) { response := make(map[string]string) var address string if isRegister { address, _ = params["address"] delete(params, "address") } else { iaasName, _ := params["iaas"] desc, err := iaas.Describe(iaasName) if err != nil { return response, err } response["description"] = desc var m *iaas.Machine if iaasName != "" { m, err = iaas.CreateMachineForIaaS(iaasName, params) } else { m, err = iaas.CreateMachine(params) } if err != nil { return response, err } nodeAddress, err := m.FormatNodeAddress() if err != nil { return response, err } params["iaas"] = m.Iaas address = nodeAddress } err := validateNodeAddress(address) if err != nil { return response, err } err = dockerCluster().Register(address, params) if err != nil { return response, err } return response, err }