Skip to content

Instantly share code, notes, and snippets.

View codegold79's full-sized avatar
🐲

frankly_coding codegold79

🐲
View GitHub Profile
func currentConfigs(ctx context.Context, moVM mo.VirtualMachine) []vmConfig {
configs := make([]vmConfig, 6)
configs[0] = vmConfig{name: "numCPU", valInt: int(moVM.Config.Hardware.NumCPU)}
configs[1] = vmConfig{name: "memoryMB", valInt: int(moVM.Config.Hardware.MemoryMB)}
configs[2] = vmConfig{name: "numCoresPerSocket", valInt: int(moVM.Config.Hardware.NumCoresPerSocket)}
if moVM.Config.MemoryHotAddEnabled != nil {
configs[3] = vmConfig{name: "memoryHotAddEnabled", valBool: *moVM.Config.MemoryHotAddEnabled}
}
tagObjs, err := vsClt.attachedTags(ctx, *vmMOR)
func newClient(ctx context.Context, cfg *vcConfig) (*vsClient, error) {
u := url.URL{
Scheme: "https",
Host: cfg.VCenter.Server,
Path: "sdk",
}
u.User = url.UserPassword(cfg.VCenter.User, cfg.VCenter.Password)
insecure := cfg.VCenter.Insecure
func eventVmMOR(req []byte) (*types.ManagedObjectReference, error) {
var ce cloudEvent
var mor types.ManagedObjectReference
err := json.Unmarshal(req, &ce)
if err != nil {
return nil, fmt.Errorf("parse request: %w", err)
}
if ce.Data.Vm == nil || ce.Data.Vm.Vm.Value == "" {
err = vsClient.tagMgr.AttachTag(ctx, tagID, vmMOR)
for _, t := range tagList {
if t.CategoryID == catID && t.ID != tagID {
if err := clt.tagMgr.DetachTag(ctx, t.ID, mor); err != nil {
return err
}
}
}
tagList, err := clt.tagMgr.GetAttachedTags(ctx, mor)
func findCatAndTagIDs(ts []tags.Tag, tn string) (string, string) {
for _, t := range ts {
if t.Name == tn {
return t.CategoryID, t.ID
}
}
return "", ""
}
tagList, err := clt.tagMgr.GetTagsForCategory(ctx, catName)
func incMemVal(mem float64) string {
// 2^13 = 8192. 8GB is max RAM.
maxExp := 13
newMem := 1 << maxExp
exp := int(math.Round(math.Log10(mem) / math.Log10(2)))
exp++
if exp < maxExp {
newMem = 1 << exp