39 lines
720 B
Go
39 lines
720 B
Go
package main
|
|
|
|
import (
|
|
"egoscale"
|
|
"fmt"
|
|
"flag"
|
|
"os"
|
|
)
|
|
|
|
var apikey = flag.String("xk", "", "Exoscale API Key")
|
|
var apisecret = flag.String("xs", "", "Exoscale API Secret")
|
|
var endpoint = flag.String("xe", "https://api.exoscale.ch/compute", "Exoscale API Endpoint")
|
|
|
|
func main() {
|
|
|
|
flag.Parse()
|
|
client := egoscale.NewClient(*endpoint, *apikey, *apisecret)
|
|
|
|
|
|
vms, err := client.ListVirtualMachines()
|
|
if err != nil {
|
|
fmt.Printf("got error: %s\n", err)
|
|
os.Exit(1)
|
|
}
|
|
|
|
for _, vm := range(vms) {
|
|
|
|
fmt.Println("vm:", vm.Displayname)
|
|
for _, nic := range(vm.Nic) {
|
|
fmt.Println("ip:", nic.Ipaddress)
|
|
}
|
|
for _, sg := range(vm.SecurityGroups) {
|
|
fmt.Println("securitygroup:", sg.Name)
|
|
}
|
|
}
|
|
os.Exit(0)
|
|
|
|
|
|
}
|