mirror of https://github.com/docker/docs.git
godep/exoscale: update egoscale
Signed-off-by: Vincent Bernat <Vincent.Bernat@exoscale.ch>
This commit is contained in:
parent
1f4502e3e0
commit
b35ad0d322
|
@ -132,7 +132,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "github.com/pyr/egoscale/src/egoscale",
|
"ImportPath": "github.com/pyr/egoscale/src/egoscale",
|
||||||
"Rev": "8bdfe1d0420634bdd37d73d00d51f86f8d08e481"
|
"Rev": "5759f42eb6041d8dbf837a642e6c061c2bb62f47"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "github.com/tent/http-link-go",
|
"ImportPath": "github.com/tent/http-link-go",
|
||||||
|
|
|
@ -2,8 +2,8 @@ package egoscale
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"net/url"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"net/url"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (exo *Client) CreateEgressRule(rule SecurityGroupRule) (*AuthorizeSecurityGroupEgressResponse, error) {
|
func (exo *Client) CreateEgressRule(rule SecurityGroupRule) (*AuthorizeSecurityGroupEgressResponse, error) {
|
||||||
|
@ -16,7 +16,7 @@ func (exo *Client) CreateEgressRule(rule SecurityGroupRule) (*AuthorizeSecurityG
|
||||||
if rule.Protocol == "ICMP" {
|
if rule.Protocol == "ICMP" {
|
||||||
params.Set("icmpcode", fmt.Sprintf("%d", rule.IcmpCode))
|
params.Set("icmpcode", fmt.Sprintf("%d", rule.IcmpCode))
|
||||||
params.Set("icmptype", fmt.Sprintf("%d", rule.IcmpType))
|
params.Set("icmptype", fmt.Sprintf("%d", rule.IcmpType))
|
||||||
} else if (rule.Protocol == "TCP" || rule.Protocol == "UDP") {
|
} else if rule.Protocol == "TCP" || rule.Protocol == "UDP" {
|
||||||
params.Set("startport", fmt.Sprintf("%d", rule.Port))
|
params.Set("startport", fmt.Sprintf("%d", rule.Port))
|
||||||
params.Set("endport", fmt.Sprintf("%d", rule.Port))
|
params.Set("endport", fmt.Sprintf("%d", rule.Port))
|
||||||
} else {
|
} else {
|
||||||
|
@ -46,7 +46,7 @@ func (exo *Client) CreateIngressRule(rule SecurityGroupRule) (*AuthorizeSecurity
|
||||||
if rule.Protocol == "ICMP" {
|
if rule.Protocol == "ICMP" {
|
||||||
params.Set("icmpcode", fmt.Sprintf("%d", rule.IcmpCode))
|
params.Set("icmpcode", fmt.Sprintf("%d", rule.IcmpCode))
|
||||||
params.Set("icmptype", fmt.Sprintf("%d", rule.IcmpType))
|
params.Set("icmptype", fmt.Sprintf("%d", rule.IcmpType))
|
||||||
} else if (rule.Protocol == "TCP" || rule.Protocol == "UDP") {
|
} else if rule.Protocol == "TCP" || rule.Protocol == "UDP" {
|
||||||
params.Set("startport", fmt.Sprintf("%d", rule.Port))
|
params.Set("startport", fmt.Sprintf("%d", rule.Port))
|
||||||
params.Set("endport", fmt.Sprintf("%d", rule.Port))
|
params.Set("endport", fmt.Sprintf("%d", rule.Port))
|
||||||
} else {
|
} else {
|
||||||
|
@ -85,18 +85,18 @@ func (exo *Client) CreateSecurityGroupWithRules(name string, ingress []SecurityG
|
||||||
|
|
||||||
sgid := r.Wrapped.Id
|
sgid := r.Wrapped.Id
|
||||||
|
|
||||||
for _, erule := range(egress) {
|
for _, erule := range egress {
|
||||||
erule.SecurityGroupId = sgid
|
erule.SecurityGroupId = sgid
|
||||||
_, err = exo.CreateEgressRule(erule)
|
_, err = exo.CreateEgressRule(erule)
|
||||||
if (err != nil) {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, inrule := range(ingress) {
|
for _, inrule := range ingress {
|
||||||
inrule.SecurityGroupId = sgid
|
inrule.SecurityGroupId = sgid
|
||||||
_, err = exo.CreateIngressRule(inrule)
|
_, err = exo.CreateIngressRule(inrule)
|
||||||
if (err != nil) {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,20 +1,20 @@
|
||||||
package egoscale
|
package egoscale
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"net/http"
|
|
||||||
"crypto/tls"
|
"crypto/tls"
|
||||||
|
"net/http"
|
||||||
)
|
)
|
||||||
|
|
||||||
func NewClient(endpoint string, apiKey string, apiSecret string) *Client {
|
func NewClient(endpoint string, apiKey string, apiSecret string) *Client {
|
||||||
cs := &Client {
|
cs := &Client{
|
||||||
client: &http.Client {
|
client: &http.Client{
|
||||||
Transport: &http.Transport {
|
Transport: &http.Transport{
|
||||||
Proxy: http.ProxyFromEnvironment,
|
Proxy: http.ProxyFromEnvironment,
|
||||||
TLSClientConfig: &tls.Config { InsecureSkipVerify: false },
|
TLSClientConfig: &tls.Config{InsecureSkipVerify: false},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
endpoint: endpoint,
|
endpoint: endpoint,
|
||||||
apiKey: apiKey,
|
apiKey: apiKey,
|
||||||
apiSecret: apiSecret,
|
apiSecret: apiSecret,
|
||||||
}
|
}
|
||||||
return cs
|
return cs
|
||||||
|
|
|
@ -21,3 +21,21 @@ func (exo *Client) CreateKeypair(name string) (*CreateSSHKeyPairResponse, error)
|
||||||
|
|
||||||
return &r.Wrapped, nil
|
return &r.Wrapped, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (exo *Client) DeleteKeypair(name string) (*StandardResponse, error) {
|
||||||
|
params := url.Values{}
|
||||||
|
params.Set("name", name)
|
||||||
|
|
||||||
|
resp, err := exo.Request("deleteSSHKeyPair", params)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var r StandardResponse
|
||||||
|
if err := json.Unmarshal(resp, &r); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return &r, nil
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -23,7 +23,7 @@ func rawValue(b json.RawMessage) (json.RawMessage, error) {
|
||||||
return nil, fmt.Errorf("Unable to extract raw value from:\n\n%s\n\n", string(b))
|
return nil, fmt.Errorf("Unable to extract raw value from:\n\n%s\n\n", string(b))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (exo *Client) Request (command string, params url.Values) (json.RawMessage, error) {
|
func (exo *Client) Request(command string, params url.Values) (json.RawMessage, error) {
|
||||||
|
|
||||||
mac := hmac.New(sha1.New, []byte(exo.apiSecret))
|
mac := hmac.New(sha1.New, []byte(exo.apiSecret))
|
||||||
|
|
||||||
|
|
|
@ -2,10 +2,10 @@ package egoscale
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"net/url"
|
|
||||||
"strings"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"net/url"
|
||||||
"regexp"
|
"regexp"
|
||||||
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (exo *Client) GetSecurityGroups() (map[string]string, error) {
|
func (exo *Client) GetSecurityGroups() (map[string]string, error) {
|
||||||
|
@ -23,7 +23,7 @@ func (exo *Client) GetSecurityGroups() (map[string]string, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
sgs = make(map[string]string)
|
sgs = make(map[string]string)
|
||||||
for _, sg := range(r.SecurityGroups) {
|
for _, sg := range r.SecurityGroups {
|
||||||
sgs[sg.Name] = sg.Id
|
sgs[sg.Name] = sg.Id
|
||||||
}
|
}
|
||||||
return sgs, nil
|
return sgs, nil
|
||||||
|
@ -44,7 +44,7 @@ func (exo *Client) GetZones() (map[string]string, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
zones = make(map[string]string)
|
zones = make(map[string]string)
|
||||||
for _, zone := range(r.Zones) {
|
for _, zone := range r.Zones {
|
||||||
zones[zone.Name] = zone.Id
|
zones[zone.Name] = zone.Id
|
||||||
}
|
}
|
||||||
return zones, nil
|
return zones, nil
|
||||||
|
@ -66,7 +66,7 @@ func (exo *Client) GetProfiles() (map[string]string, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
profiles = make(map[string]string)
|
profiles = make(map[string]string)
|
||||||
for _, offering := range(r.ServiceOfferings) {
|
for _, offering := range r.ServiceOfferings {
|
||||||
profiles[strings.ToLower(offering.Name)] = offering.Id
|
profiles[strings.ToLower(offering.Name)] = offering.Id
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,7 +90,7 @@ func (exo *Client) GetKeypairs() ([]string, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
keypairs = make([]string, r.Count, r.Count)
|
keypairs = make([]string, r.Count, r.Count)
|
||||||
for i, keypair := range(r.SSHKeyPairs) {
|
for i, keypair := range r.SSHKeyPairs {
|
||||||
keypairs[i] = keypair.Name
|
keypairs[i] = keypair.Name
|
||||||
}
|
}
|
||||||
return keypairs, nil
|
return keypairs, nil
|
||||||
|
@ -115,7 +115,7 @@ func (exo *Client) GetImages() (map[string]map[int]string, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
re := regexp.MustCompile(`^Linux (?P<name>Ubuntu|Debian) (?P<version>[0-9.]+).*$`)
|
re := regexp.MustCompile(`^Linux (?P<name>Ubuntu|Debian) (?P<version>[0-9.]+).*$`)
|
||||||
for _, template := range(r.Templates) {
|
for _, template := range r.Templates {
|
||||||
size := template.Size / (1024 * 1024 * 1024)
|
size := template.Size / (1024 * 1024 * 1024)
|
||||||
submatch := re.FindStringSubmatch(template.Name)
|
submatch := re.FindStringSubmatch(template.Name)
|
||||||
if len(submatch) > 0 {
|
if len(submatch) > 0 {
|
||||||
|
@ -124,7 +124,7 @@ func (exo *Client) GetImages() (map[string]map[int]string, error) {
|
||||||
image := fmt.Sprintf("%s-%s", name, version)
|
image := fmt.Sprintf("%s-%s", name, version)
|
||||||
|
|
||||||
_, present := images[image]
|
_, present := images[image]
|
||||||
if (!present) {
|
if !present {
|
||||||
images[image] = make(map[int]string)
|
images[image] = make(map[int]string)
|
||||||
}
|
}
|
||||||
images[image][size] = template.Id
|
images[image][size] = template.Id
|
||||||
|
@ -138,31 +138,31 @@ func (exo *Client) GetImages() (map[string]map[int]string, error) {
|
||||||
func (exo *Client) GetTopology() (*Topology, error) {
|
func (exo *Client) GetTopology() (*Topology, error) {
|
||||||
|
|
||||||
zones, err := exo.GetZones()
|
zones, err := exo.GetZones()
|
||||||
if (err != nil) {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
images, err := exo.GetImages()
|
images, err := exo.GetImages()
|
||||||
if (err != nil) {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
groups, err := exo.GetSecurityGroups()
|
groups, err := exo.GetSecurityGroups()
|
||||||
if (err != nil) {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
keypairs, err := exo.GetKeypairs()
|
keypairs, err := exo.GetKeypairs()
|
||||||
if (err != nil) {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
profiles, err := exo.GetProfiles()
|
profiles, err := exo.GetProfiles()
|
||||||
if (err != nil) {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
topo := &Topology{
|
topo := &Topology{
|
||||||
Zones: zones,
|
Zones: zones,
|
||||||
Profiles: profiles,
|
Profiles: profiles,
|
||||||
Images: images,
|
Images: images,
|
||||||
Keypairs: keypairs,
|
Keypairs: keypairs,
|
||||||
SecurityGroups: groups,
|
SecurityGroups: groups,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,205 +1,208 @@
|
||||||
package egoscale
|
package egoscale
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"net/http"
|
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"net/http"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Client struct {
|
type Client struct {
|
||||||
client *http.Client
|
client *http.Client
|
||||||
endpoint string
|
endpoint string
|
||||||
apiKey string
|
apiKey string
|
||||||
apiSecret string
|
apiSecret string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
type Error struct {
|
type Error struct {
|
||||||
ErrorCode int `json:"errorcode"`
|
ErrorCode int `json:"errorcode"`
|
||||||
CSErrorCode int `json:"cserrorcode"`
|
CSErrorCode int `json:"cserrorcode"`
|
||||||
ErrorText string `json:"errortext"`
|
ErrorText string `json:"errortext"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type StandardResponse struct {
|
||||||
|
Success string `json:"success"`
|
||||||
|
DisplayText string `json:"displaytext"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Topology struct {
|
type Topology struct {
|
||||||
Zones map[string]string
|
Zones map[string]string
|
||||||
Images map[string]map[int]string
|
Images map[string]map[int]string
|
||||||
Profiles map[string]string
|
Profiles map[string]string
|
||||||
Keypairs []string
|
Keypairs []string
|
||||||
SecurityGroups map[string]string
|
SecurityGroups map[string]string
|
||||||
}
|
}
|
||||||
|
|
||||||
type SecurityGroupRule struct {
|
type SecurityGroupRule struct {
|
||||||
Cidr string
|
Cidr string
|
||||||
IcmpType int
|
IcmpType int
|
||||||
IcmpCode int
|
IcmpCode int
|
||||||
Port int
|
Port int
|
||||||
Protocol string
|
Protocol string
|
||||||
SecurityGroupId string
|
SecurityGroupId string
|
||||||
}
|
}
|
||||||
|
|
||||||
type MachineProfile struct {
|
type MachineProfile struct {
|
||||||
Name string
|
Name string
|
||||||
SecurityGroups []string
|
SecurityGroups []string
|
||||||
Keypair string
|
Keypair string
|
||||||
Userdata string
|
Userdata string
|
||||||
ServiceOffering string
|
ServiceOffering string
|
||||||
Template string
|
Template string
|
||||||
Zone string
|
Zone string
|
||||||
}
|
}
|
||||||
|
|
||||||
type ListZonesResponse struct {
|
type ListZonesResponse struct {
|
||||||
Count int `json:"count"`
|
Count int `json:"count"`
|
||||||
Zones []*Zone `json:"zone"`
|
Zones []*Zone `json:"zone"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Zone struct {
|
type Zone struct {
|
||||||
Allocationstate string `json:"allocationstate,omitempty"`
|
Allocationstate string `json:"allocationstate,omitempty"`
|
||||||
Description string `json:"description,omitempty"`
|
Description string `json:"description,omitempty"`
|
||||||
Displaytext string `json:"displaytext,omitempty"`
|
Displaytext string `json:"displaytext,omitempty"`
|
||||||
Domain string `json:"domain,omitempty"`
|
Domain string `json:"domain,omitempty"`
|
||||||
Domainid string `json:"domainid,omitempty"`
|
Domainid string `json:"domainid,omitempty"`
|
||||||
Domainname string `json:"domainname,omitempty"`
|
Domainname string `json:"domainname,omitempty"`
|
||||||
Id string `json:"id,omitempty"`
|
Id string `json:"id,omitempty"`
|
||||||
Internaldns1 string `json:"internaldns1,omitempty"`
|
Internaldns1 string `json:"internaldns1,omitempty"`
|
||||||
Internaldns2 string `json:"internaldns2,omitempty"`
|
Internaldns2 string `json:"internaldns2,omitempty"`
|
||||||
Ip6dns1 string `json:"ip6dns1,omitempty"`
|
Ip6dns1 string `json:"ip6dns1,omitempty"`
|
||||||
Ip6dns2 string `json:"ip6dns2,omitempty"`
|
Ip6dns2 string `json:"ip6dns2,omitempty"`
|
||||||
Localstorageenabled bool `json:"localstorageenabled,omitempty"`
|
Localstorageenabled bool `json:"localstorageenabled,omitempty"`
|
||||||
Name string `json:"name,omitempty"`
|
Name string `json:"name,omitempty"`
|
||||||
Networktype string `json:"networktype,omitempty"`
|
Networktype string `json:"networktype,omitempty"`
|
||||||
Resourcedetails map[string]string `json:"resourcedetails,omitempty"`
|
Resourcedetails map[string]string `json:"resourcedetails,omitempty"`
|
||||||
Securitygroupsenabled bool `json:"securitygroupsenabled,omitempty"`
|
Securitygroupsenabled bool `json:"securitygroupsenabled,omitempty"`
|
||||||
Vlan string `json:"vlan,omitempty"`
|
Vlan string `json:"vlan,omitempty"`
|
||||||
Zonetoken string `json:"zonetoken,omitempty"`
|
Zonetoken string `json:"zonetoken,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ListServiceOfferingsResponse struct {
|
type ListServiceOfferingsResponse struct {
|
||||||
Count int `json:"count"`
|
Count int `json:"count"`
|
||||||
ServiceOfferings []*ServiceOffering `json:"serviceoffering"`
|
ServiceOfferings []*ServiceOffering `json:"serviceoffering"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ServiceOffering struct {
|
type ServiceOffering struct {
|
||||||
Cpunumber int `json:"cpunumber,omitempty"`
|
Cpunumber int `json:"cpunumber,omitempty"`
|
||||||
Cpuspeed int `json:"cpuspeed,omitempty"`
|
Cpuspeed int `json:"cpuspeed,omitempty"`
|
||||||
Displaytext string `json:"displaytext,omitempty"`
|
Displaytext string `json:"displaytext,omitempty"`
|
||||||
Domain string `json:"domain,omitempty"`
|
Domain string `json:"domain,omitempty"`
|
||||||
Domainid string `json:"domainid,omitempty"`
|
Domainid string `json:"domainid,omitempty"`
|
||||||
Hosttags string `json:"hosttags,omitempty"`
|
Hosttags string `json:"hosttags,omitempty"`
|
||||||
Id string `json:"id,omitempty"`
|
Id string `json:"id,omitempty"`
|
||||||
Iscustomized bool `json:"iscustomized,omitempty"`
|
Iscustomized bool `json:"iscustomized,omitempty"`
|
||||||
Issystem bool `json:"issystem,omitempty"`
|
Issystem bool `json:"issystem,omitempty"`
|
||||||
Isvolatile bool `json:"isvolatile,omitempty"`
|
Isvolatile bool `json:"isvolatile,omitempty"`
|
||||||
Memory int `json:"memory,omitempty"`
|
Memory int `json:"memory,omitempty"`
|
||||||
Name string `json:"name,omitempty"`
|
Name string `json:"name,omitempty"`
|
||||||
Networkrate int `json:"networkrate,omitempty"`
|
Networkrate int `json:"networkrate,omitempty"`
|
||||||
Serviceofferingdetails map[string]string `json:"serviceofferingdetails,omitempty"`
|
Serviceofferingdetails map[string]string `json:"serviceofferingdetails,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ListTemplatesResponse struct {
|
type ListTemplatesResponse struct {
|
||||||
Count int `json:"count"`
|
Count int `json:"count"`
|
||||||
Templates []*Template `json:"template"`
|
Templates []*Template `json:"template"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Template struct {
|
type Template struct {
|
||||||
Account string `json:"account,omitempty"`
|
Account string `json:"account,omitempty"`
|
||||||
Accountid string `json:"accountid,omitempty"`
|
Accountid string `json:"accountid,omitempty"`
|
||||||
Bootable bool `json:"bootable,omitempty"`
|
Bootable bool `json:"bootable,omitempty"`
|
||||||
Checksum string `json:"checksum,omitempty"`
|
Checksum string `json:"checksum,omitempty"`
|
||||||
Created string `json:"created,omitempty"`
|
Created string `json:"created,omitempty"`
|
||||||
CrossZones bool `json:"crossZones,omitempty"`
|
CrossZones bool `json:"crossZones,omitempty"`
|
||||||
Details map[string]string `json:"details,omitempty"`
|
Details map[string]string `json:"details,omitempty"`
|
||||||
Displaytext string `json:"displaytext,omitempty"`
|
Displaytext string `json:"displaytext,omitempty"`
|
||||||
Domain string `json:"domain,omitempty"`
|
Domain string `json:"domain,omitempty"`
|
||||||
Domainid string `json:"domainid,omitempty"`
|
Domainid string `json:"domainid,omitempty"`
|
||||||
Format string `json:"format,omitempty"`
|
Format string `json:"format,omitempty"`
|
||||||
Hostid string `json:"hostid,omitempty"`
|
Hostid string `json:"hostid,omitempty"`
|
||||||
Hostname string `json:"hostname,omitempty"`
|
Hostname string `json:"hostname,omitempty"`
|
||||||
Hypervisor string `json:"hypervisor,omitempty"`
|
Hypervisor string `json:"hypervisor,omitempty"`
|
||||||
Id string `json:"id,omitempty"`
|
Id string `json:"id,omitempty"`
|
||||||
Isdynamicallyscalable bool `json:"isdynamicallyscalable,omitempty"`
|
Isdynamicallyscalable bool `json:"isdynamicallyscalable,omitempty"`
|
||||||
Isextractable bool `json:"isextractable,omitempty"`
|
Isextractable bool `json:"isextractable,omitempty"`
|
||||||
Isfeatured bool `json:"isfeatured,omitempty"`
|
Isfeatured bool `json:"isfeatured,omitempty"`
|
||||||
Ispublic bool `json:"ispublic,omitempty"`
|
Ispublic bool `json:"ispublic,omitempty"`
|
||||||
Isready bool `json:"isready,omitempty"`
|
Isready bool `json:"isready,omitempty"`
|
||||||
Name string `json:"name,omitempty"`
|
Name string `json:"name,omitempty"`
|
||||||
Ostypeid string `json:"ostypeid,omitempty"`
|
Ostypeid string `json:"ostypeid,omitempty"`
|
||||||
Ostypename string `json:"ostypename,omitempty"`
|
Ostypename string `json:"ostypename,omitempty"`
|
||||||
Passwordenabled bool `json:"passwordenabled,omitempty"`
|
Passwordenabled bool `json:"passwordenabled,omitempty"`
|
||||||
Project string `json:"project,omitempty"`
|
Project string `json:"project,omitempty"`
|
||||||
Projectid string `json:"projectid,omitempty"`
|
Projectid string `json:"projectid,omitempty"`
|
||||||
Removed string `json:"removed,omitempty"`
|
Removed string `json:"removed,omitempty"`
|
||||||
Size int `json:"size,omitempty"`
|
Size int `json:"size,omitempty"`
|
||||||
Sourcetemplateid string `json:"sourcetemplateid,omitempty"`
|
Sourcetemplateid string `json:"sourcetemplateid,omitempty"`
|
||||||
Sshkeyenabled bool `json:"sshkeyenabled,omitempty"`
|
Sshkeyenabled bool `json:"sshkeyenabled,omitempty"`
|
||||||
Status string `json:"status,omitempty"`
|
Status string `json:"status,omitempty"`
|
||||||
Zoneid string `json:"zoneid,omitempty"`
|
Zoneid string `json:"zoneid,omitempty"`
|
||||||
Zonename string `json:"zonename,omitempty"`
|
Zonename string `json:"zonename,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ListSSHKeyPairsResponse struct {
|
type ListSSHKeyPairsResponse struct {
|
||||||
Count int `json:"count"`
|
Count int `json:"count"`
|
||||||
SSHKeyPairs []*SSHKeyPair `json:"sshkeypair"`
|
SSHKeyPairs []*SSHKeyPair `json:"sshkeypair"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type SSHKeyPair struct {
|
type SSHKeyPair struct {
|
||||||
Fingerprint string `json:"fingerprint,omitempty"`
|
Fingerprint string `json:"fingerprint,omitempty"`
|
||||||
Name string `json:"name,omitempty"`
|
Name string `json:"name,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
type ListSecurityGroupsResponse struct {
|
type ListSecurityGroupsResponse struct {
|
||||||
Count int `json:"count"`
|
Count int `json:"count"`
|
||||||
SecurityGroups []*SecurityGroup `json:"securitygroup"`
|
SecurityGroups []*SecurityGroup `json:"securitygroup"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type SecurityGroup struct {
|
type SecurityGroup struct {
|
||||||
Account string `json:"account,omitempty"`
|
Account string `json:"account,omitempty"`
|
||||||
Description string `json:"description,omitempty"`
|
Description string `json:"description,omitempty"`
|
||||||
Domain string `json:"domain,omitempty"`
|
Domain string `json:"domain,omitempty"`
|
||||||
Domainid string `json:"domainid,omitempty"`
|
Domainid string `json:"domainid,omitempty"`
|
||||||
Id string `json:"id,omitempty"`
|
Id string `json:"id,omitempty"`
|
||||||
Name string `json:"name,omitempty"`
|
Name string `json:"name,omitempty"`
|
||||||
Project string `json:"project,omitempty"`
|
Project string `json:"project,omitempty"`
|
||||||
Projectid string `json:"projectid,omitempty"`
|
Projectid string `json:"projectid,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type CreateSecurityGroupResponseWrapper struct {
|
type CreateSecurityGroupResponseWrapper struct {
|
||||||
Wrapped CreateSecurityGroupResponse `json:"securitygroup"`
|
Wrapped CreateSecurityGroupResponse `json:"securitygroup"`
|
||||||
}
|
}
|
||||||
type CreateSecurityGroupResponse struct {
|
type CreateSecurityGroupResponse struct {
|
||||||
Account string `json:"account,omitempty"`
|
Account string `json:"account,omitempty"`
|
||||||
Description string `json:"description,omitempty"`
|
Description string `json:"description,omitempty"`
|
||||||
Domain string `json:"domain,omitempty"`
|
Domain string `json:"domain,omitempty"`
|
||||||
Domainid string `json:"domainid,omitempty"`
|
Domainid string `json:"domainid,omitempty"`
|
||||||
Id string `json:"id,omitempty"`
|
Id string `json:"id,omitempty"`
|
||||||
Name string `json:"name,omitempty"`
|
Name string `json:"name,omitempty"`
|
||||||
Project string `json:"project,omitempty"`
|
Project string `json:"project,omitempty"`
|
||||||
Projectid string `json:"projectid,omitempty"`
|
Projectid string `json:"projectid,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type AuthorizeSecurityGroupIngressResponse struct {
|
type AuthorizeSecurityGroupIngressResponse struct {
|
||||||
JobID string `json:"jobid,omitempty"`
|
JobID string `json:"jobid,omitempty"`
|
||||||
Account string `json:"account,omitempty"`
|
Account string `json:"account,omitempty"`
|
||||||
Cidr string `json:"cidr,omitempty"`
|
Cidr string `json:"cidr,omitempty"`
|
||||||
Endport int `json:"endport,omitempty"`
|
Endport int `json:"endport,omitempty"`
|
||||||
Icmpcode int `json:"icmpcode,omitempty"`
|
Icmpcode int `json:"icmpcode,omitempty"`
|
||||||
Icmptype int `json:"icmptype,omitempty"`
|
Icmptype int `json:"icmptype,omitempty"`
|
||||||
Protocol string `json:"protocol,omitempty"`
|
Protocol string `json:"protocol,omitempty"`
|
||||||
Ruleid string `json:"ruleid,omitempty"`
|
Ruleid string `json:"ruleid,omitempty"`
|
||||||
Securitygroupname string `json:"securitygroupname,omitempty"`
|
Securitygroupname string `json:"securitygroupname,omitempty"`
|
||||||
Startport int `json:"startport,omitempty"`
|
Startport int `json:"startport,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type AuthorizeSecurityGroupEgressResponse struct {
|
type AuthorizeSecurityGroupEgressResponse struct {
|
||||||
JobID string `json:"jobid,omitempty"`
|
JobID string `json:"jobid,omitempty"`
|
||||||
Account string `json:"account,omitempty"`
|
Account string `json:"account,omitempty"`
|
||||||
Cidr string `json:"cidr,omitempty"`
|
Cidr string `json:"cidr,omitempty"`
|
||||||
Endport int `json:"endport,omitempty"`
|
Endport int `json:"endport,omitempty"`
|
||||||
Icmpcode int `json:"icmpcode,omitempty"`
|
Icmpcode int `json:"icmpcode,omitempty"`
|
||||||
Icmptype int `json:"icmptype,omitempty"`
|
Icmptype int `json:"icmptype,omitempty"`
|
||||||
Protocol string `json:"protocol,omitempty"`
|
Protocol string `json:"protocol,omitempty"`
|
||||||
Ruleid string `json:"ruleid,omitempty"`
|
Ruleid string `json:"ruleid,omitempty"`
|
||||||
Securitygroupname string `json:"securitygroupname,omitempty"`
|
Securitygroupname string `json:"securitygroupname,omitempty"`
|
||||||
Startport int `json:"startport,omitempty"`
|
Startport int `json:"startport,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type DeployVirtualMachineWrappedResponse struct {
|
type DeployVirtualMachineWrappedResponse struct {
|
||||||
|
@ -207,177 +210,174 @@ type DeployVirtualMachineWrappedResponse struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type DeployVirtualMachineResponse struct {
|
type DeployVirtualMachineResponse struct {
|
||||||
JobID string `json:"jobid,omitempty"`
|
JobID string `json:"jobid,omitempty"`
|
||||||
Account string `json:"account,omitempty"`
|
Account string `json:"account,omitempty"`
|
||||||
Affinitygroup []struct {
|
Affinitygroup []struct {
|
||||||
Account string `json:"account,omitempty"`
|
Account string `json:"account,omitempty"`
|
||||||
Description string `json:"description,omitempty"`
|
Description string `json:"description,omitempty"`
|
||||||
Domain string `json:"domain,omitempty"`
|
Domain string `json:"domain,omitempty"`
|
||||||
Domainid string `json:"domainid,omitempty"`
|
Domainid string `json:"domainid,omitempty"`
|
||||||
Id string `json:"id,omitempty"`
|
Id string `json:"id,omitempty"`
|
||||||
Name string `json:"name,omitempty"`
|
Name string `json:"name,omitempty"`
|
||||||
Type string `json:"type,omitempty"`
|
Type string `json:"type,omitempty"`
|
||||||
VirtualmachineIds []string `json:"virtualmachineIds,omitempty"`
|
VirtualmachineIds []string `json:"virtualmachineIds,omitempty"`
|
||||||
|
|
||||||
} `json:"affinitygroup,omitempty"`
|
} `json:"affinitygroup,omitempty"`
|
||||||
Cpunumber int `json:"cpunumber,omitempty"`
|
Cpunumber int `json:"cpunumber,omitempty"`
|
||||||
Cpuspeed int `json:"cpuspeed,omitempty"`
|
Cpuspeed int `json:"cpuspeed,omitempty"`
|
||||||
Cpuused string `json:"cpuused,omitempty"`
|
Cpuused string `json:"cpuused,omitempty"`
|
||||||
Created string `json:"created,omitempty"`
|
Created string `json:"created,omitempty"`
|
||||||
Details map[string]string `json:"details,omitempty"`
|
Details map[string]string `json:"details,omitempty"`
|
||||||
Diskioread int `json:"diskioread,omitempty"`
|
Diskioread int `json:"diskioread,omitempty"`
|
||||||
Diskiowrite int `json:"diskiowrite,omitempty"`
|
Diskiowrite int `json:"diskiowrite,omitempty"`
|
||||||
Diskkbsread int `json:"diskkbsread,omitempty"`
|
Diskkbsread int `json:"diskkbsread,omitempty"`
|
||||||
Diskkbswrite int `json:"diskkbswrite,omitempty"`
|
Diskkbswrite int `json:"diskkbswrite,omitempty"`
|
||||||
Displayname string `json:"displayname,omitempty"`
|
Displayname string `json:"displayname,omitempty"`
|
||||||
Displayvm bool `json:"displayvm,omitempty"`
|
Displayvm bool `json:"displayvm,omitempty"`
|
||||||
Domain string `json:"domain,omitempty"`
|
Domain string `json:"domain,omitempty"`
|
||||||
Domainid string `json:"domainid,omitempty"`
|
Domainid string `json:"domainid,omitempty"`
|
||||||
Forvirtualnetwork bool `json:"forvirtualnetwork,omitempty"`
|
Forvirtualnetwork bool `json:"forvirtualnetwork,omitempty"`
|
||||||
Group string `json:"group,omitempty"`
|
Group string `json:"group,omitempty"`
|
||||||
Groupid string `json:"groupid,omitempty"`
|
Groupid string `json:"groupid,omitempty"`
|
||||||
Guestosid string `json:"guestosid,omitempty"`
|
Guestosid string `json:"guestosid,omitempty"`
|
||||||
Haenable bool `json:"haenable,omitempty"`
|
Haenable bool `json:"haenable,omitempty"`
|
||||||
Hostid string `json:"hostid,omitempty"`
|
Hostid string `json:"hostid,omitempty"`
|
||||||
Hostname string `json:"hostname,omitempty"`
|
Hostname string `json:"hostname,omitempty"`
|
||||||
Hypervisor string `json:"hypervisor,omitempty"`
|
Hypervisor string `json:"hypervisor,omitempty"`
|
||||||
Id string `json:"id,omitempty"`
|
Id string `json:"id,omitempty"`
|
||||||
Instancename string `json:"instancename,omitempty"`
|
Instancename string `json:"instancename,omitempty"`
|
||||||
Isdynamicallyscalable bool `json:"isdynamicallyscalable,omitempty"`
|
Isdynamicallyscalable bool `json:"isdynamicallyscalable,omitempty"`
|
||||||
Isodisplaytext string `json:"isodisplaytext,omitempty"`
|
Isodisplaytext string `json:"isodisplaytext,omitempty"`
|
||||||
Isoid string `json:"isoid,omitempty"`
|
Isoid string `json:"isoid,omitempty"`
|
||||||
Isoname string `json:"isoname,omitempty"`
|
Isoname string `json:"isoname,omitempty"`
|
||||||
Keypair string `json:"keypair,omitempty"`
|
Keypair string `json:"keypair,omitempty"`
|
||||||
Memory int `json:"memory,omitempty"`
|
Memory int `json:"memory,omitempty"`
|
||||||
Name string `json:"name,omitempty"`
|
Name string `json:"name,omitempty"`
|
||||||
Networkkbsread int `json:"networkkbsread,omitempty"`
|
Networkkbsread int `json:"networkkbsread,omitempty"`
|
||||||
Networkkbswrite int `json:"networkkbswrite,omitempty"`
|
Networkkbswrite int `json:"networkkbswrite,omitempty"`
|
||||||
Nic []struct {
|
Nic []struct {
|
||||||
Broadcasturi string `json:"broadcasturi,omitempty"`
|
Broadcasturi string `json:"broadcasturi,omitempty"`
|
||||||
Gateway string `json:"gateway,omitempty"`
|
Gateway string `json:"gateway,omitempty"`
|
||||||
Id string `json:"id,omitempty"`
|
Id string `json:"id,omitempty"`
|
||||||
Ipaddress string `json:"ipaddress,omitempty"`
|
Ipaddress string `json:"ipaddress,omitempty"`
|
||||||
Isdefault bool `json:"isdefault,omitempty"`
|
Isdefault bool `json:"isdefault,omitempty"`
|
||||||
Isolationuri string `json:"isolationuri,omitempty"`
|
Isolationuri string `json:"isolationuri,omitempty"`
|
||||||
Macaddress string `json:"macaddress,omitempty"`
|
Macaddress string `json:"macaddress,omitempty"`
|
||||||
Netmask string `json:"netmask,omitempty"`
|
Netmask string `json:"netmask,omitempty"`
|
||||||
Networkid string `json:"networkid,omitempty"`
|
Networkid string `json:"networkid,omitempty"`
|
||||||
Networkname string `json:"networkname,omitempty"`
|
Networkname string `json:"networkname,omitempty"`
|
||||||
Secondaryip []string `json:"secondaryip,omitempty"`
|
Secondaryip []string `json:"secondaryip,omitempty"`
|
||||||
Traffictype string `json:"traffictype,omitempty"`
|
Traffictype string `json:"traffictype,omitempty"`
|
||||||
Type string `json:"type,omitempty"`
|
Type string `json:"type,omitempty"`
|
||||||
} `json:"nic,omitempty"`
|
} `json:"nic,omitempty"`
|
||||||
Password string `json:"password,omitempty"`
|
Password string `json:"password,omitempty"`
|
||||||
Passwordenabled bool `json:"passwordenabled,omitempty"`
|
Passwordenabled bool `json:"passwordenabled,omitempty"`
|
||||||
Project string `json:"project,omitempty"`
|
Project string `json:"project,omitempty"`
|
||||||
Projectid string `json:"projectid,omitempty"`
|
Projectid string `json:"projectid,omitempty"`
|
||||||
Publicip string `json:"publicip,omitempty"`
|
Publicip string `json:"publicip,omitempty"`
|
||||||
Publicipid string `json:"publicipid,omitempty"`
|
Publicipid string `json:"publicipid,omitempty"`
|
||||||
Rootdeviceid int `json:"rootdeviceid,omitempty"`
|
Rootdeviceid int `json:"rootdeviceid,omitempty"`
|
||||||
Rootdevicetype string `json:"rootdevicetype,omitempty"`
|
Rootdevicetype string `json:"rootdevicetype,omitempty"`
|
||||||
Serviceofferingid string `json:"serviceofferingid,omitempty"`
|
Serviceofferingid string `json:"serviceofferingid,omitempty"`
|
||||||
Serviceofferingname string `json:"serviceofferingname,omitempty"`
|
Serviceofferingname string `json:"serviceofferingname,omitempty"`
|
||||||
Servicestate string `json:"servicestate,omitempty"`
|
Servicestate string `json:"servicestate,omitempty"`
|
||||||
State string `json:"state,omitempty"`
|
State string `json:"state,omitempty"`
|
||||||
Templatedisplaytext string `json:"templatedisplaytext,omitempty"`
|
Templatedisplaytext string `json:"templatedisplaytext,omitempty"`
|
||||||
Templateid string `json:"templateid,omitempty"`
|
Templateid string `json:"templateid,omitempty"`
|
||||||
Templatename string `json:"templatename,omitempty"`
|
Templatename string `json:"templatename,omitempty"`
|
||||||
Zoneid string `json:"zoneid,omitempty"`
|
Zoneid string `json:"zoneid,omitempty"`
|
||||||
Zonename string `json:"zonename,omitempty"`
|
Zonename string `json:"zonename,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type QueryAsyncJobResultResponse struct {
|
type QueryAsyncJobResultResponse struct {
|
||||||
Accountid string `json:"accountid,omitempty"`
|
Accountid string `json:"accountid,omitempty"`
|
||||||
Cmd string `json:"cmd,omitempty"`
|
Cmd string `json:"cmd,omitempty"`
|
||||||
Created string `json:"created,omitempty"`
|
Created string `json:"created,omitempty"`
|
||||||
Jobinstanceid string `json:"jobinstanceid,omitempty"`
|
Jobinstanceid string `json:"jobinstanceid,omitempty"`
|
||||||
Jobinstancetype string `json:"jobinstancetype,omitempty"`
|
Jobinstancetype string `json:"jobinstancetype,omitempty"`
|
||||||
Jobprocstatus int `json:"jobprocstatus,omitempty"`
|
Jobprocstatus int `json:"jobprocstatus,omitempty"`
|
||||||
Jobresult json.RawMessage `json:"jobresult,omitempty"`
|
Jobresult json.RawMessage `json:"jobresult,omitempty"`
|
||||||
Jobresultcode int `json:"jobresultcode,omitempty"`
|
Jobresultcode int `json:"jobresultcode,omitempty"`
|
||||||
Jobresulttype string `json:"jobresulttype,omitempty"`
|
Jobresulttype string `json:"jobresulttype,omitempty"`
|
||||||
Jobstatus int `json:"jobstatus,omitempty"`
|
Jobstatus int `json:"jobstatus,omitempty"`
|
||||||
Userid string `json:"userid,omitempty"`
|
Userid string `json:"userid,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ListVirtualMachinesResponse struct {
|
type ListVirtualMachinesResponse struct {
|
||||||
Count int `json:"count"`
|
Count int `json:"count"`
|
||||||
VirtualMachines []*VirtualMachine `json:"virtualmachine"`
|
VirtualMachines []*VirtualMachine `json:"virtualmachine"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type VirtualMachine struct {
|
type VirtualMachine struct {
|
||||||
Account string `json:"account,omitempty"`
|
Account string `json:"account,omitempty"`
|
||||||
Cpunumber int `json:"cpunumber,omitempty"`
|
Cpunumber int `json:"cpunumber,omitempty"`
|
||||||
Cpuspeed int `json:"cpuspeed,omitempty"`
|
Cpuspeed int `json:"cpuspeed,omitempty"`
|
||||||
Cpuused string `json:"cpuused,omitempty"`
|
Cpuused string `json:"cpuused,omitempty"`
|
||||||
Created string `json:"created,omitempty"`
|
Created string `json:"created,omitempty"`
|
||||||
Details map[string]string `json:"details,omitempty"`
|
Details map[string]string `json:"details,omitempty"`
|
||||||
Diskioread int `json:"diskioread,omitempty"`
|
Diskioread int `json:"diskioread,omitempty"`
|
||||||
Diskiowrite int `json:"diskiowrite,omitempty"`
|
Diskiowrite int `json:"diskiowrite,omitempty"`
|
||||||
Diskkbsread int `json:"diskkbsread,omitempty"`
|
Diskkbsread int `json:"diskkbsread,omitempty"`
|
||||||
Diskkbswrite int `json:"diskkbswrite,omitempty"`
|
Diskkbswrite int `json:"diskkbswrite,omitempty"`
|
||||||
Displayname string `json:"displayname,omitempty"`
|
Displayname string `json:"displayname,omitempty"`
|
||||||
Displayvm bool `json:"displayvm,omitempty"`
|
Displayvm bool `json:"displayvm,omitempty"`
|
||||||
Domain string `json:"domain,omitempty"`
|
Domain string `json:"domain,omitempty"`
|
||||||
Domainid string `json:"domainid,omitempty"`
|
Domainid string `json:"domainid,omitempty"`
|
||||||
Forvirtualnetwork bool `json:"forvirtualnetwork,omitempty"`
|
Forvirtualnetwork bool `json:"forvirtualnetwork,omitempty"`
|
||||||
Group string `json:"group,omitempty"`
|
Group string `json:"group,omitempty"`
|
||||||
Groupid string `json:"groupid,omitempty"`
|
Groupid string `json:"groupid,omitempty"`
|
||||||
Guestosid string `json:"guestosid,omitempty"`
|
Guestosid string `json:"guestosid,omitempty"`
|
||||||
Haenable bool `json:"haenable,omitempty"`
|
Haenable bool `json:"haenable,omitempty"`
|
||||||
Hostid string `json:"hostid,omitempty"`
|
Hostid string `json:"hostid,omitempty"`
|
||||||
Hostname string `json:"hostname,omitempty"`
|
Hostname string `json:"hostname,omitempty"`
|
||||||
Hypervisor string `json:"hypervisor,omitempty"`
|
Hypervisor string `json:"hypervisor,omitempty"`
|
||||||
Id string `json:"id,omitempty"`
|
Id string `json:"id,omitempty"`
|
||||||
Instancename string `json:"instancename,omitempty"`
|
Instancename string `json:"instancename,omitempty"`
|
||||||
Isdynamicallyscalable bool `json:"isdynamicallyscalable,omitempty"`
|
Isdynamicallyscalable bool `json:"isdynamicallyscalable,omitempty"`
|
||||||
Isodisplaytext string `json:"isodisplaytext,omitempty"`
|
Isodisplaytext string `json:"isodisplaytext,omitempty"`
|
||||||
Isoid string `json:"isoid,omitempty"`
|
Isoid string `json:"isoid,omitempty"`
|
||||||
Isoname string `json:"isoname,omitempty"`
|
Isoname string `json:"isoname,omitempty"`
|
||||||
Keypair string `json:"keypair,omitempty"`
|
Keypair string `json:"keypair,omitempty"`
|
||||||
Memory int `json:"memory,omitempty"`
|
Memory int `json:"memory,omitempty"`
|
||||||
Name string `json:"name,omitempty"`
|
Name string `json:"name,omitempty"`
|
||||||
Networkkbsread int `json:"networkkbsread,omitempty"`
|
Networkkbsread int `json:"networkkbsread,omitempty"`
|
||||||
Networkkbswrite int `json:"networkkbswrite,omitempty"`
|
Networkkbswrite int `json:"networkkbswrite,omitempty"`
|
||||||
Nic []struct {
|
Nic []struct {
|
||||||
Broadcasturi string `json:"broadcasturi,omitempty"`
|
Broadcasturi string `json:"broadcasturi,omitempty"`
|
||||||
Gateway string `json:"gateway,omitempty"`
|
Gateway string `json:"gateway,omitempty"`
|
||||||
Id string `json:"id,omitempty"`
|
Id string `json:"id,omitempty"`
|
||||||
Ip6address string `json:"ip6address,omitempty"`
|
Ip6address string `json:"ip6address,omitempty"`
|
||||||
Ip6cidr string `json:"ip6cidr,omitempty"`
|
Ip6cidr string `json:"ip6cidr,omitempty"`
|
||||||
Ip6gateway string `json:"ip6gateway,omitempty"`
|
Ip6gateway string `json:"ip6gateway,omitempty"`
|
||||||
Ipaddress string `json:"ipaddress,omitempty"`
|
Ipaddress string `json:"ipaddress,omitempty"`
|
||||||
Isdefault bool `json:"isdefault,omitempty"`
|
Isdefault bool `json:"isdefault,omitempty"`
|
||||||
Isolationuri string `json:"isolationuri,omitempty"`
|
Isolationuri string `json:"isolationuri,omitempty"`
|
||||||
Macaddress string `json:"macaddress,omitempty"`
|
Macaddress string `json:"macaddress,omitempty"`
|
||||||
Netmask string `json:"netmask,omitempty"`
|
Netmask string `json:"netmask,omitempty"`
|
||||||
Networkid string `json:"networkid,omitempty"`
|
Networkid string `json:"networkid,omitempty"`
|
||||||
Networkname string `json:"networkname,omitempty"`
|
Networkname string `json:"networkname,omitempty"`
|
||||||
Secondaryip []string `json:"secondaryip,omitempty"`
|
Secondaryip []string `json:"secondaryip,omitempty"`
|
||||||
Traffictype string `json:"traffictype,omitempty"`
|
Traffictype string `json:"traffictype,omitempty"`
|
||||||
Type string `json:"type,omitempty"`
|
Type string `json:"type,omitempty"`
|
||||||
|
|
||||||
} `json:"nic,omitempty"`
|
} `json:"nic,omitempty"`
|
||||||
Password string `json:"password,omitempty"`
|
Password string `json:"password,omitempty"`
|
||||||
Passwordenabled bool `json:"passwordenabled,omitempty"`
|
Passwordenabled bool `json:"passwordenabled,omitempty"`
|
||||||
Project string `json:"project,omitempty"`
|
Project string `json:"project,omitempty"`
|
||||||
Projectid string `json:"projectid,omitempty"`
|
Projectid string `json:"projectid,omitempty"`
|
||||||
Publicip string `json:"publicip,omitempty"`
|
Publicip string `json:"publicip,omitempty"`
|
||||||
Publicipid string `json:"publicipid,omitempty"`
|
Publicipid string `json:"publicipid,omitempty"`
|
||||||
Rootdeviceid int `json:"rootdeviceid,omitempty"`
|
Rootdeviceid int `json:"rootdeviceid,omitempty"`
|
||||||
Rootdevicetype string `json:"rootdevicetype,omitempty"`
|
Rootdevicetype string `json:"rootdevicetype,omitempty"`
|
||||||
Serviceofferingid string `json:"serviceofferingid,omitempty"`
|
Serviceofferingid string `json:"serviceofferingid,omitempty"`
|
||||||
Serviceofferingname string `json:"serviceofferingname,omitempty"`
|
Serviceofferingname string `json:"serviceofferingname,omitempty"`
|
||||||
Servicestate string `json:"servicestate,omitempty"`
|
Servicestate string `json:"servicestate,omitempty"`
|
||||||
State string `json:"state,omitempty"`
|
State string `json:"state,omitempty"`
|
||||||
Templatedisplaytext string `json:"templatedisplaytext,omitempty"`
|
Templatedisplaytext string `json:"templatedisplaytext,omitempty"`
|
||||||
Templateid string `json:"templateid,omitempty"`
|
Templateid string `json:"templateid,omitempty"`
|
||||||
Templatename string `json:"templatename,omitempty"`
|
Templatename string `json:"templatename,omitempty"`
|
||||||
Zoneid string `json:"zoneid,omitempty"`
|
Zoneid string `json:"zoneid,omitempty"`
|
||||||
Zonename string `json:"zonename,omitempty"`
|
Zonename string `json:"zonename,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
type StartVirtualMachineResponse struct {
|
type StartVirtualMachineResponse struct {
|
||||||
JobID string `json:"jobid,omitempty"`
|
JobID string `json:"jobid,omitempty"`
|
||||||
}
|
}
|
||||||
|
@ -390,7 +390,6 @@ type DestroyVirtualMachineResponse struct {
|
||||||
JobID string `json:"jobid,omitempty"`
|
JobID string `json:"jobid,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
type RebootVirtualMachineResponse struct {
|
type RebootVirtualMachineResponse struct {
|
||||||
JobID string `json:"jobid,omitempty"`
|
JobID string `json:"jobid,omitempty"`
|
||||||
}
|
}
|
||||||
|
@ -402,3 +401,7 @@ type CreateSSHKeyPairWrappedResponse struct {
|
||||||
type CreateSSHKeyPairResponse struct {
|
type CreateSSHKeyPairResponse struct {
|
||||||
Privatekey string `json:"privatekey,omitempty"`
|
Privatekey string `json:"privatekey,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type DeleteSSHKeyPairResponse struct {
|
||||||
|
Privatekey string `json:"privatekey,omitempty"`
|
||||||
|
}
|
||||||
|
|
|
@ -3,9 +3,9 @@ package egoscale
|
||||||
import (
|
import (
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
"net/url"
|
"net/url"
|
||||||
"strings"
|
"strings"
|
||||||
"fmt"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func (exo *Client) CreateVirtualMachine(p MachineProfile) (string, error) {
|
func (exo *Client) CreateVirtualMachine(p MachineProfile) (string, error) {
|
||||||
|
@ -140,3 +140,23 @@ func (exo *Client) GetVirtualMachine(id string) (*VirtualMachine, error) {
|
||||||
return nil, fmt.Errorf("cannot retrieve virtualmachine with id %s", id)
|
return nil, fmt.Errorf("cannot retrieve virtualmachine with id %s", id)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (exo *Client) ListVirtualMachines(id string) ([]*VirtualMachine, error) {
|
||||||
|
|
||||||
|
params := url.Values{}
|
||||||
|
params.Set("id", id)
|
||||||
|
|
||||||
|
resp, err := exo.Request("listVirtualMachines", params)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var r ListVirtualMachinesResponse
|
||||||
|
|
||||||
|
if err := json.Unmarshal(resp, &r); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return r.VirtualMachines, nil
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue