test accessing confluence
This commit is contained in:
92
main.go
92
main.go
@@ -2,14 +2,11 @@ package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"flag"
|
||||
"fmt"
|
||||
"log"
|
||||
"net/url"
|
||||
"os"
|
||||
"reflect"
|
||||
"strings"
|
||||
"time"
|
||||
_ "time/tzdata"
|
||||
|
||||
@@ -18,6 +15,8 @@ import (
|
||||
"github.com/vmware/govmomi/view"
|
||||
"github.com/vmware/govmomi/vim25/mo"
|
||||
"github.com/vmware/govmomi/vim25/types"
|
||||
|
||||
goconfluence "github.com/virtomize/confluence-go-api"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -133,7 +132,7 @@ func getScsiBusSharingVMs(client *govmomi.Client) error {
|
||||
fmt.Printf("owner: %v\n", owner)
|
||||
*/
|
||||
|
||||
// Determine cluster based on runtime host of VM
|
||||
// Determine cluster based on runtime host of VM based on https://github.com/vmware/govmomi/issues/1242#issuecomment-427671990
|
||||
for _, host := range hsList {
|
||||
if host.Reference() == *vm.Summary.Runtime.Host {
|
||||
fmt.Printf("host %s matches with parent %s\n", host.Name, host.Parent)
|
||||
@@ -156,9 +155,9 @@ func getScsiBusSharingVMs(client *govmomi.Client) error {
|
||||
fmt.Printf("scsi: %v\n", scsi)
|
||||
controller := scsi.GetVirtualSCSIController()
|
||||
//fmt.Printf("controller: %s\n", device.GetVirtualDevice().DeviceInfo.GetDescription().Label)
|
||||
if controller.SharedBus != "noSharing" {
|
||||
fmt.Printf("VM %s is using SCSI bus sharing mode: %s\n", vm.Name, controller.SharedBus)
|
||||
fmt.Printf("VM %s is using SCSI bus sharing mode: %s\n", vm.Name, string(controller.SharedBus))
|
||||
|
||||
if controller.SharedBus != "noSharing" {
|
||||
result := BusSharingResults{
|
||||
VmName: vm.Name,
|
||||
ClusterName: clusterName,
|
||||
@@ -184,6 +183,10 @@ func main() {
|
||||
vPass := flag.String("password", "", "The password to use when connecting to vCenter")
|
||||
vTZ := flag.String("tz", "Australia/Sydney", "The timezone to use when converting vCenter UTC times")
|
||||
vInsecure := flag.Bool("insecure", true, "Allow insecure connections to vCenter")
|
||||
|
||||
cURL := flag.String("confluence-url", "https://confluence.yourdomain.com/wiki/rest/api", "The URL to your confluence rest API endpoint")
|
||||
cToken := flag.String("confluence-token", "", "Your Confluence Personal Access Token")
|
||||
cPageId := flag.String("confluence-pageid", "", "The page ID to update with the report")
|
||||
//vmName := flag.String("vmname", "example-vm", "The vm to query metrics")
|
||||
//begin := flag.Duration("b", time.Hour, "Begin time") // default BeginTime is 1h ago
|
||||
flag.Parse()
|
||||
@@ -205,43 +208,62 @@ func main() {
|
||||
fmt.Fprintf(os.Stderr, "Error setting timezone to %s : %s\n", *vTZ, err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
u, err := url.Parse(*vURL)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "Error parsing url %s : %s\n", *vURL, err)
|
||||
os.Exit(1)
|
||||
} else {
|
||||
if !strings.HasSuffix(u.Path, "/sdk") {
|
||||
u.Path, _ = url.JoinPath(u.Path, "/sdk")
|
||||
log.Printf("Updated vCenter URL to '%v'\n", u)
|
||||
/*
|
||||
u, err := url.Parse(*vURL)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "Error parsing url %s : %s\n", *vURL, err)
|
||||
os.Exit(1)
|
||||
} else {
|
||||
if !strings.HasSuffix(u.Path, "/sdk") {
|
||||
u.Path, _ = url.JoinPath(u.Path, "/sdk")
|
||||
log.Printf("Updated vCenter URL to '%v'\n", u)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
log.Printf("Connecting to vCenter %s\n", u)
|
||||
u.User = url.UserPassword(*vUser, *vPass)
|
||||
log.Printf("Connecting to vCenter %s\n", u)
|
||||
u.User = url.UserPassword(*vUser, *vPass)
|
||||
|
||||
ctx, cancel = context.WithCancel(context.Background())
|
||||
defer cancel()
|
||||
ctx, cancel = context.WithCancel(context.Background())
|
||||
defer cancel()
|
||||
|
||||
// Login to vcenter
|
||||
c, err = govmomi.NewClient(ctx, u, *vInsecure)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "Logging in error: %s\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
defer c.Logout(ctx)
|
||||
*/
|
||||
|
||||
api, err := goconfluence.NewAPI(*cURL, "", *cToken)
|
||||
|
||||
// Login to vcenter
|
||||
c, err = govmomi.NewClient(ctx, u, *vInsecure)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "Logging in error: %s\n", err)
|
||||
os.Exit(1)
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer c.Logout(ctx)
|
||||
|
||||
err = getScsiBusSharingVMs(c)
|
||||
// get content by content id
|
||||
c, err := api.GetContentByID(*cPageId, goconfluence.ContentQuery{
|
||||
SpaceKey: "HCS",
|
||||
Expand: []string{"body.storage", "version"},
|
||||
})
|
||||
if err != nil {
|
||||
log.Printf("Error retrieving list of VMs with SCSI Bus Sharing : %s\n", err)
|
||||
return
|
||||
log.Fatal(err)
|
||||
}
|
||||
fmt.Printf("%+v\n", c)
|
||||
|
||||
// Output final results in JSON
|
||||
if len(busSharingResults) > 0 {
|
||||
j, _ := json.Marshal(busSharingResults)
|
||||
fmt.Println(string(j))
|
||||
} else {
|
||||
fmt.Println("{}")
|
||||
}
|
||||
/*
|
||||
err = getScsiBusSharingVMs(c)
|
||||
if err != nil {
|
||||
log.Printf("Error retrieving list of VMs with SCSI Bus Sharing : %s\n", err)
|
||||
return
|
||||
}
|
||||
|
||||
// Output final results in JSON
|
||||
if len(busSharingResults) > 0 {
|
||||
j, _ := json.Marshal(busSharingResults)
|
||||
fmt.Println(string(j))
|
||||
} else {
|
||||
fmt.Println("{}")
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
Reference in New Issue
Block a user