Got any conclusion for this? On Monday, September 14, 2015 at 8:42:10 PM UTC+5:30, bhuvane...@ptechnosoft.com wrote: > > > > Hi Everyone , > > I m new to vmware and i started exploring different formats in > vmdk ,snapshots and all.I m using golang as a programming language.I found > out that govmomi library that supports vsphere APIs that is similar to > pyvmomi .I ve created snapshots using createSnapshotTask method .But i m > stuck with QuerychangedDiskAreas method that retrieves list of changed > blocks.I have some doubts regarding it.Can anyone help me to clear my > doubts? This is the code to get changed blocks . > > > func main(){ > > ctx, cancel := context.WithCancel(context.Background()) > defer cancel() > > flag.Parse() > // Parse URL from string > u, err := url.Parse(*urlFlag)if err != nil { > exit(err)} > // Override username and/or password as required > processOverride(u) > // Connect and log in to ESX or vCenter > c, err := govmomi.NewClient(ctx, u, *insecureFlag)if err != nil { > exit(err)} > > f := find.NewFinder(c.Client, true) > // Find one and only datacenter > dc, err := f.DefaultDatacenter(ctx)if err != nil { > exit(err)} > // Make future calls local to this datacenter > f.SetDatacenter(dc) > // Find datastores in datacenter > dss, err := f.DatastoreList(ctx, "*")if err != nil { > exit(err)} > > pc := property.DefaultCollector(c.Client) > // Convert datastores into list of referencesvar refs > []types.ManagedObjectReferencefor _, ds := range dss { > refs = append(refs, ds.Reference())} > // Retrieve summary property for all datastoresvar dst []mo.Datastore > err = pc.Retrieve(ctx, refs, []string{"summary"}, &dst)if err != nil { > exit(err)} > //get Virtual Machines > vms, err := f.VirtualMachineList(ctx, "*")if err != nil { > } > //apps, _ := f.VirtualAppList(ctx, "")//fmt.Println(apps[0].String()) > //r.dataStore = r.f.DefaultDatastore(r.ctx, "*")// Convert virtual machines > into list of referencesvar vmrefs types.ManagedObjectReferencevar device > *types.VirtualDevice > fmt.Println(device)var devices object.VirtualDeviceList > name := ""for i, vm := range vms { > name, _ = vm.Name(ctx) > if name == "Ubuntu Target" { > fmt.Println(name) > devices, _ = vm.Device(ctx) > device = devices[i].GetVirtualDevice() > > vmrefs = vm.Common.Reference() > > break > } > } > > req := new(types.CreateSnapshot_Task) > req.Description = "Snapshot created by Data Migration Tool." > req.Name = "Ubuntu Target" > req.Memory = false > > req.This.Type = vmrefs.Type > req.This.Value = vmrefs.Value > s, e := methods.CreateSnapshot_Task(ctx, c.RoundTripper, req)if e != nil { > fmt.Println(e) > } > > time.Sleep(time.Second * 3) > > queryReq := new(types.QueryChangedDiskAreas) > queryReq.ChangeId = "*" > queryReq.DeviceKey = device.Key > queryReq.Snapshot = new(types.ManagedObjectReference) > queryReq.Snapshot.Type = s.Returnval.Type > queryReq.Snapshot.Value = s.Returnval.Value > queryReq.StartOffset = 0 > > queryReq.This.Type =vmrefs.Type > queryReq.This.Value= =vmrefs.Value > _, e = methods.QueryChangedDiskAreas(ctx, c.RoundTripper, queryReq) > if e != nil { > fmt.Println("error in query", e.Error())} > } > > > > Can anyone please tell if i am missing anything? > > > > > > > > > > > > >
-- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/44738032-75a7-4252-b60e-4ce239d1a397%40googlegroups.com.