def main(): """ Simple command-line program for attaching a first class disk to a vm. """ args = get_args() try: if args.disable_ssl_verification: service_instance = connect.SmartConnectNoSSL(host=args.host, user=args.user, pwd=args.password, port=int(args.port)) else: service_instance = connect.SmartConnect(host=args.host, user=args.user, pwd=args.password, port=int(args.port)) atexit.register(connect.Disconnect, service_instance) content = service_instance.RetrieveContent() # Retrieve Datastore Object datastore = disk.get_obj(content, [vim.Datastore], args.datastore) # Retrieve FCD Object vdisk = disk.retrieve_fcd(content, datastore, args.vdisk) # Retrieve VM vm = None if args.uuid: search_index = content.searchIndex vm = search_index.FindByUuid(None, args.uuid, True) elif args.vm_name: vm = disk.get_obj(content, [vim.VirtualMachine], args.vm_name) # Attaching FCD to VM if vm: task = attach_fcd_to_vm(vm, vdisk, datastore) tasks.wait_for_tasks(service_instance, [task]) else: raise RuntimeError("VM not found.") except vmodl.MethodFault as error: print("Caught vmodl fault : " + error.msg) return -1 return 0
def main(): """ Simple command-line program for listing all snapshots of a fcd """ args = get_args() try: if args.disable_ssl_verification: service_instance = connect.SmartConnectNoSSL(host=args.host, user=args.user, pwd=args.password, port=int(args.port)) else: service_instance = connect.SmartConnect(host=args.host, user=args.user, pwd=args.password, port=int(args.port)) atexit.register(connect.Disconnect, service_instance) content = service_instance.RetrieveContent() # Retrieve Datastore Object datastore = disk.get_obj(content, [vim.Datastore], args.datastore) # Retrieve FCD Object all_vdisk = disk.retrieve_all_fcd(content, datastore) except vmodl.MethodFault as error: print("Caught vmodl fault : " + error.msg) return -1 return 0
def main(): """ Simple command-line program for creating a first class disk. """ args = get_args() try: if args.disable_ssl_verification: service_instance = connect.SmartConnectNoSSL(host=args.host, user=args.user, pwd=args.password, port=int(args.port)) else: service_instance = connect.SmartConnect(host=args.host, user=args.user, pwd=args.password, port=int(args.port)) atexit.register(connect.Disconnect, service_instance) content = service_instance.RetrieveContent() # Connect to SPBM Endpoint pbmSi = pbmhelper.create_pbm_session(service_instance._stub) pbmContent = pbmSi.RetrieveContent() # Retrieving Storage Policy if args.policy: policy = pbmhelper.retrieve_storage_policy(pbmContent, args.policy) else: policy = None # Retrieve Datastore Object datastore = disk.get_obj(content, [vim.Datastore], args.datastore) # Setting FCD Specifications spec = vim.vslm.CreateSpec() spec.name = args.name spec.capacityInMB = args.capacityInGB * 1024 if args.keepAfterDeleteVm: spec.keepAfterDeleteVm = True spec.backingSpec = vim.vslm.CreateSpec.DiskFileBackingSpec() spec.backingSpec.provisioningType = "thin" spec.backingSpec.datastore = datastore if policy: spec.profile = [ vim.vm.DefinedProfileSpec(profileId=policy.profileId.uniqueId) ] # Create FCD storage = content.vStorageObjectManager task = storage.CreateDisk_Task(spec) tasks.wait_for_tasks(service_instance, [task]) except vmodl.MethodFault as error: print("Caught vmodl fault : " + error.msg) return -1 return 0
def main(): """ Simple command-line program for creating a first class disk. """ args = get_args() try: if args.disable_ssl_verification: service_instance = connect.SmartConnectNoSSL(host=args.host, user=args.user, pwd=args.password, port=int(args.port)) else: service_instance = connect.SmartConnect(host=args.host, user=args.user, pwd=args.password, port=int(args.port)) atexit.register(connect.Disconnect, service_instance) content = service_instance.RetrieveContent() # Connect to SPBM Endpoint pbmSi = pbmhelper.create_pbm_session(service_instance._stub) pbmContent = pbmSi.RetrieveContent() # Retrieving Storage Policy if args.policy: policy = pbmhelper.retrieve_storage_policy(pbmContent, args.policy) else: policy = None # Retrieve Datastore Object datastore = disk.get_obj(content, [vim.Datastore], args.datastore) # Setting FCD Specifications spec = vim.vslm.CreateSpec() spec.name = args.name spec.capacityInMB = args.capacityInGB * 1024 if args.keepAfterDeleteVm: spec.keepAfterDeleteVm = True spec.backingSpec = vim.vslm.CreateSpec.DiskFileBackingSpec() spec.backingSpec.provisioningType = "thin" spec.backingSpec.datastore = datastore if policy: spec.profile = [vim.vm.DefinedProfileSpec( profileId=policy.profileId.uniqueId)] # Create FCD storage = content.vStorageObjectManager task = storage.CreateDisk_Task(spec) tasks.wait_for_tasks(service_instance, [task]) except vmodl.MethodFault as error: print("Caught vmodl fault : " + error.msg) return -1 return 0
def main(): """ Simple command-line program for deleting a snapshot of a first class disk. """ args = get_args() try: if args.disable_ssl_verification: service_instance = connect.SmartConnectNoSSL(host=args.host, user=args.user, pwd=args.password, port=int(args.port)) else: service_instance = connect.SmartConnect(host=args.host, user=args.user, pwd=args.password, port=int(args.port)) atexit.register(connect.Disconnect, service_instance) content = service_instance.RetrieveContent() # Retrieve Datastore Object datastore = disk.get_obj(content, [vim.Datastore], args.datastore) # Retrieve FCD Object vdisk = disk.retrieve_fcd(content, datastore, args.vdisk) # Retrieve Snapshot Object snapshot = disk.retrieve_fcd_snapshot(content, datastore, vdisk, args.snapshot) # Confirming Snapshot deletion if not args.yes: response = cli.prompt_y_n_question("Are you sure you want to " "delete snapshot '" + args.snapshot + "'?", default='no') if not response: print("Exiting script. User chose not to delete snapshot.") exit() # Delete FCD Snapshot storage = content.vStorageObjectManager task = storage.DeleteSnapshot_Task(vdisk.config.id, datastore, snapshot) tasks.wait_for_tasks(service_instance, [task]) except vmodl.MethodFault as error: print("Caught vmodl fault : " + error.msg) return -1 return 0
def main(): """ Simple command-line program for deleting a snapshot of a first class disk. """ args = get_args() try: if args.disable_ssl_verification: service_instance = connect.SmartConnectNoSSL(host=args.host, user=args.user, pwd=args.password, port=int(args.port)) else: service_instance = connect.SmartConnect(host=args.host, user=args.user, pwd=args.password, port=int(args.port)) atexit.register(connect.Disconnect, service_instance) content = service_instance.RetrieveContent() # Retrieve Datastore Object datastore = disk.get_obj(content, [vim.Datastore], args.datastore) # Retrieve FCD Object vdisk = disk.retrieve_fcd(content, datastore, args.vdisk) # Retrieve Snapshot Object snapshot = disk.retrieve_fcd_snapshot( content, datastore, vdisk, args.snapshot) # Confirming Snapshot deletion if not args.yes: response = cli.prompt_y_n_question("Are you sure you want to " "delete snapshot '" + args.snapshot + "'?", default='no') if not response: print("Exiting script. User chose not to delete snapshot.") exit() # Delete FCD Snapshot storage = content.vStorageObjectManager task = storage.DeleteSnapshot_Task( vdisk.config.id, datastore, snapshot) tasks.wait_for_tasks(service_instance, [task]) except vmodl.MethodFault as error: print("Caught vmodl fault : " + error.msg) return -1 return 0
def main(): """ Simple command-line program for detaching a disk from a virtual machine. """ args = get_args() try: if args.disable_ssl_verification: service_instance = connect.SmartConnectNoSSL(host=args.host, user=args.user, pwd=args.password, port=int(args.port)) else: service_instance = connect.SmartConnect(host=args.host, user=args.user, pwd=args.password, port=int(args.port)) atexit.register(connect.Disconnect, service_instance) content = service_instance.RetrieveContent() # Retrieve VM vm = None if args.uuid: search_index = content.searchIndex vm = search_index.FindByUuid(None, args.uuid, True) elif args.vm_name: vm = disk.get_obj(content, [vim.VirtualMachine], args.vm_name) # Detaching Disk from VM if vm: task = detach_disk_from_vm(vm, args.disknumber, args.language) tasks.wait_for_tasks(service_instance, [task]) else: raise RuntimeError("VM not found.") except vmodl.MethodFault as error: print("Caught vmodl fault : " + error.msg) return -1 return 0
def main(): """ Simple command-line program for creating a snapshot of a first class disk. """ args = get_args() try: if args.disable_ssl_verification: service_instance = connect.SmartConnectNoSSL(host=args.host, user=args.user, pwd=args.password, port=int(args.port)) else: service_instance = connect.SmartConnect(host=args.host, user=args.user, pwd=args.password, port=int(args.port)) atexit.register(connect.Disconnect, service_instance) content = service_instance.RetrieveContent() # Retrieve Datastore Object datastore = disk.get_obj(content, [vim.Datastore], args.datastore) # Retrieve FCD Object vdisk = disk.retrieve_fcd(content, datastore, args.vdisk) # Create FCD Snapshot storage = content.vStorageObjectManager task = storage.VStorageObjectCreateSnapshot_Task( vdisk.config.id, datastore, args.snapshot) tasks.wait_for_tasks(service_instance, [task]) except vmodl.MethodFault as error: print("Caught vmodl fault : " + error.msg) return -1 return 0
def main(): """ Simple command-line program for creating a new vdisk from a snapshot """ args = get_args() try: if args.disable_ssl_verification: service_instance = connect.SmartConnectNoSSL(host=args.host, user=args.user, pwd=args.password, port=int(args.port)) else: service_instance = connect.SmartConnect(host=args.host, user=args.user, pwd=args.password, port=int(args.port)) atexit.register(connect.Disconnect, service_instance) content = service_instance.RetrieveContent() # Connect to SPBM Endpoint pbmSi = pbmhelper.create_pbm_session(service_instance._stub) pbmContent = pbmSi.RetrieveContent() # Retrieving Storage Policy if args.policy: p = pbmhelper.retrieve_storage_policy(pbmContent, args.policy) policy = [ vim.vm.DefinedProfileSpec(profileId=p.profileId.uniqueId) ] else: policy = None # Retrieve Source Datastore Object source_datastore = disk.get_obj(content, [vim.Datastore], args.source_datastore) # Retrieve Source FCD Object source_vdisk = disk.retrieve_fcd(content, source_datastore, args.source_vdisk) # Retrieve Snapshot Object snapshot = disk.retrieve_fcd_snapshot(content, source_datastore, source_vdisk, args.snapshot) # Retrieve Destination Datastore Object dest_datastore = disk.get_obj(content, [vim.Datastore], args.dest_datastore) # Create FCD from Snapshot storage = content.vStorageObjectManager if policy: task = storage.CreateDiskFromSnapshot_Task(source_vdisk.config.id, dest_datastore, snapshot, args.dest_vdisk, policy) else: task = storage.CreateDiskFromSnapshot_Task(source_vdisk.config.id, dest_datastore, snapshot, args.dest_vdisk) tasks.wait_for_tasks(service_instance, [task]) except vmodl.MethodFault as error: print("Caught vmodl fault : " + error.msg) return -1 return 0