Python Example of
Backing Up a vCenter Server Appliance
This example
specifies that the backup image should include Statistics, Events, and Tasks as
well as the core inventory and alarm data. The value for
req.parts
indicates the optional data part for Statistics, Events, and Tasks.
This example uses the
following global variables.
- my_storage_server
- my_backup_folder
- my_scp_user
- my_scp_password
- my_stub_config
When you back up the
instance, you need two sets of authentication credentials. The API client needs
to authenticate to the
, and the Appliance backup service needs to authenticate
to the backup storage server.
The example assumes that your
API client has already authenticated the connection to the
, and the security context is stored in
my_stub_config
.
In the backup request, you
need to specify the folder that will contain the backup image. The folder name
must be specified as a path name relative to the home directory of the user
that authenticates with the storage server.
from com.vmware.appliance.recovery.backup_client import Job import time # This example assumes you have previously created a session # and stored the session ID in my_stub_config. # Create a backup request object. req = Job.BackupRequest() # Include optional backup part for Statistics, Events, and Tasks. req.parts = ['seat'] req.location_type = Job.LocationType.SCP req.comment = 'On-demand backup' req.location = my_storage_server + ':/home/scpuser/' + my_backup_folder \ + '/' + time.strftime('%Y-%m-%d-%H-%M-%S') req.location_user = my_scp_user req.location_password = my_scp_password # Issue a request to start the backup operation. backup_job = Job( my_stub_config ) job_status = backup_job.create( req ) job_id = job_status.id # Monitor progress of the job until it is complete. while (job_status.state == Job.BackupRestoreProcessState.INPROGRESS) : print( 'Backup job state: {} ({}%)'.format( job_status.state, \ job_status.progress ) ) time.sleep( 10 ) job_status = backup_job.get( job_id ) # Report job completion. print( 'Backup job completion status: {}'.format( job_status.state) )