Actifio Class

This class instantiate a Actifio appliance object. The implimented methods correspond to regular appliance operations.

class Actifio.Actifio(appliance, username='', password='', token='', cert_validation=False, verbose=True)

Actifio instance:


appliance:IP or FQDN of the appliance
username:Username to login to the appliance
 Certificate validation for SSL connections. Defaults to false.
run_uds_command(cmdType, cmdUDS, cmdArgs={})

Wrapper function to convert CLI commands to the rest API.


cmdType:info / task
cmdUDS:Command to use (eg. lsuser, lshost, mkapplication… etc.)
cmdArgs:Dictionary with arguments to the command


Returns a dictionary of API response.


vmdiscovery -discovercluster -host 1234

{ ‘discovercluster’: None, ‘host’: 1234 }

lsapplication -filtervalues “appname=mydb&hostname=myhost”

{ ‘filtervalues’: { ‘appname’: ‘mydb’, ‘hostname’: ‘myhost’ } }

lshost 123

{ ‘argument’: 123 }


RESTfulAPI_*.pdf would be good referecne point for the __SIMILARITY__ and __PATTERN__ of the cmdArgs.

run_sarg_command(cmdSARG, cmdArgs={})

Wrapper function to convert CLI commands to the rest API.


cmdSARG:Command to use (eg. reportsnaps, reportapps… etc.)
cmdArgs:Dictionary with arguments to the command


return a dictionary of the SARG command, mapping to the same JSON response from the API.


reportapps -a 1234 -x

self.run_sarg_command(“reportapps”, { ‘a’: 1234, ‘x’: None })


This method query for the hosts registered in Actifio applaince. You can specify a combination of following filter attributes.


alternateip:Specifies the alternate IP address of the host. Multiple alternate can be specified in a comma-delimited list. To remove the alternate IP address, use an empty field with double quotes.
description:Description of the host.
diskpref:Specifies preference (BLOCK or NFS) for presenting the staging disk. Default value is BLOCK.
friendlypath:Friendly path for the host.
hasagent:Tells us whether the host has an agent. 0= none, 1= yes <– this is true/false
hostname:Host name
hosttype:Host type, for example generic, hmc, hpux, hyperv, isilon, netapp svm, netapp 7 mode, openvms, tpgs, or vcenter.
isclusterhost:Host is a clustered host.
ipaddress:IP address of the host.
isesxhost:Whether the host is an esx server.
isvcenterhost:Whether the host is a management server, such as a vCenter.
isvm:Whether the host is a VM.
originalhostid:Identifies original host id for shadow host.
osrelease:Operating system release.
ostype:Operating system type.
osversion:Operating system version.
sourcecluster:Identifies the original cluster ID for shadow host
svcname:Specifies the SVC host name, which limits to 15 characters, first character cannot be a number, and no space, or ‘.’ is allowed.
uniquename:Unique name for the host.
vcenterhostid:The vCenter host ID.


Returns the ActHostCollection object with a list of Host entries to satisfy the filter criteria.

This method query for the registered applications within a Actifio applaince. You can specify a combination of following filter attributes.


appname:Application name
apptype:Application type
appversion:Whatever we glean during discovery, and it is not always available.
auxinfo:For internal use, not likely to be useful.
description:Description of the application.
friendlytype:Friendly type for the application
hostid:Host id.
hostname:Host name.
id:Application id.
ignore:Allows the user to ignore the application (when set), so application will not show up in the UI.
isclustered:Specifies if the application is part of a cluster.
networkip:The network IP of the application
networkname:The network name of the application.
originalappid:Original application id.
pathname:The path name of the application
protectable:None means you cannot protect it, fully means you can, partial means there is limited support.
sourcecluster:Identifies the original cluster ID for shadow host ( when we create a shadow application or shadow host, this tells us where it originates from).


Instance of ActAppCollection object with a collection of all the application matching the filter criteria.

Queries Actifio appliance with matching backups images as specified by the filter criteria. if no filter criteria specified will return all the backup images.


appid:Application object ID.
appname:Application name
apptype:Application type
backupdate:Start date [usage: ‘backupdate since 24 hours’ for backups started since last 24 hours,’backupdate before 7 days’ for backups started older than 7 days]
backupname:Image name.
characteristic:Charchteristic for of backup type (in addition to jobclass [PRIMARY | MOUNT | UNMOUNT | VDISK | CLONE]
 consistency date of the backup
 Consistency mode of image (for example, application consistent or crash consistent).
expiration:Date and time when this should expire. Images with an enforced retention (including remote images) cannot be expired before they reach the immutability date.
hostid:Application ID of the host where the backup image ??? <– host ID of the capture job host
hostname:Name of the host where the backup image is???? <– host name of the capture job host
jobclass:Type of jobs [ snapshot | dedup | dedupasync | clone | liveclone | syncback ]
label:label of the backup that user specified.
mappedhost:ID of the host to which backup image is mapped.
mountedhost:ID of host where backup image is mounted.
policyname:Name of the policy on which this object is created.
prepdate:Date when LiveClone image is created.
slpname:Profile name used while creating this image.
sltname:SLA template name used while creating this image.
sourceuds:Cluster ID of the source cluster
targetuds:Cluster ID of the target cluster
virtualsize:Application size


Return the backups image collection in ActImgCollection object.

This method query for the jobs, running and archived. The following filter arguments can be used to refine the output. Returns ActJobCollection object.


isscheduled:[ true | false ]
status:[ running | queued | paused | interrupted | stalled ]


ActJobCollection object with a collection of jobs as per the selection criteria.
get_image_bytime(application, restoretime, strict_policy=False, job_class='snapshot')

This method returns a ActImage object with a single image to the specified restore time.


application:should be the application in the form of ActApplication object.
strict_policy:[True | False] If set to true, the image will be selected from log recovery range, with the closest image to replay the logs on.
restoretime:can be datetime obect or string with the format [YYYY-MM-DD HH:mm:ss] job_class: Defaults to snapshot. Should be string type, to any supported image jobclass.


ActImage object to the specified restoretime. If strict_policy is set to True, the image will selected to the closest restoretime, where redo logs can be played up to the restoretime. If strict_policy is set to False, then the closest image to the restore time will be selected. When strict_policy is False, the recovery image consistencytime could be ahead of the restoretime, however strict_policy is True would ensure image consistency time is always lower than the restoretime.
clone_database(source_hostname='', source_appname='', source_application=None, target_hostname='', target_host=None, restoretime='', strict_policy=True, pre_script='', post_script='', nowait=True, **kwargs)

This method creates a virtual clone of Oracle or SQL server database.


 Hostname of the source host where the database was captured from
source_appname:source application name, or the database name
 target host where the virtual clone need to be created on

Miscelaneous Parameters

restoretime:Point in time the database needs to be recovered to.
strict_policy:Defaults to True, If set to True (only for applications with log database backups), :databases will be cloned to the time specified.
nowait:defaults to True, if True, this method will be non-blocking mode.

Oracle Related Parameters

oracle_home (required):
oracle_db_name (required):
 SID of the target clone
oracle_user (optional):
 Defaults to “oracle”.
oracle_tns_admin (optional):
 TNS admin path, defaults to $ORACLE_HOME/network/admin.
oracle_db_mem (optional):
 Total Memory Target for the database, defaults to 512MB.
oracle_sga_pct (optional):
 Memory Percentage to allocate for SGA
oracle_redo_size (optional):
 Redo Log size in MB, defaults to 500
oracle_shared_pool (optional):
 Oracle Shared Pool size
oracle_db_cache_size (optional):
 Oracle DB Cache size
oracle_recover_dest_size (optional):
 Oracle Parameter db_recover_dest_size. Defaults to 5000
oracle_diagnostic_dest (optional):
 Oracle Diagnostic Destination
oracle_nprocs (optional):
 Num of Max processes
oracle_open_cursors (optional):
 Number of open_cursors. defaults to 1000.
oracle_char_set (optional):
 Characterset. Defaults to ‘AL32UTF8’
oracle_tns_ip (optional):
 TNS IP Address
oracle_tns_port (optional):
 TNS Port
oracle_tns_domain (optional):
 TNS Domain
oracle_no_nid (optional):
 Do not change the DBID of the new clone. Will maintain same DBID as the source. Defaults to FALSE
oracle_no_tns_update (optional):
 Do not update TNS records. Defaults to FALSE
oracle_restore_recov (optional):
 Recover the oracle database. Defaults to TRUE
oracle_no_rac (optional):
 Treat as Oracle RAC. Defaults to TRUE

SQLServer Related

sql_instance_name (required):
 Target SQL Server instance name
sql_recover_userlogins (optional):
 Recover user logins of the database. Defaults to FALSE
sql_username (optional):
 Username for database provisioning
sql_password (optional):
 Password for the specified user

SQLServer DB Application

sql_db_name (reuired):
 Database name at the target instance. (Only required if the source application is database or single database mount from instance.)

SQLServer Instance

sql_source_dbnames (required):
 Source database names if the source application is SQL instance. Use ‘,’ as delimiter for multiple databases. (Only required if the source application is SQL server instance.)
sql_cg_name (required):
 Consistency group name. (Only required if the source application is SQL Server instance and mount multiple databases at a time.)
sql_dbname_prefix (optional):
 Prefix of database name for multiple database mount
sql_dbname_suffix (optional):
 Suffix of database name for multiple database mount


This method returns a tuple of (ActJob,ActImage), respectively the resulting Job and Image.
simple_mount(source_application=None, target_host=None, mount_image=None, restoretime='', strict_policy=False, pre_script='', post_script='', nowait=True, job_class='snapshot', mount_mode='nfs', label='Python Library', **kwargs)

This method mounts a simple mount operation, for a application type. This mount will not create a virtual clone (if you need to create a virtual clone look into clone_database() instead).


If not mount_image is None

mount_image (required):
 ActImage object refering to mount image

ElseIf not source_application is None

source_hostname (required):
 hostname where the server was backed up from.
source_appname (required):
 name of the application


source_application (required):
 ActApplication object refereing to source application

If not target-host is None

target_hostname (required):
 hostname of the target host


target_host (required):
 ActHost object refering to the target host
restoretime (optional):
 recovery time of the mount image, depending on the strict_policy, the closest image will be selected.
strict_policy (optional):
 Boolean, defaults to False, if True, application is treated as transaction log capable and image is selected to a level where recoverable to restoretime. Else closest image to the time will be selected
pre_script (optional):
 Pre Script for the mount operation
post-script (optional):
 Post Script for the mount operation
nowait (optional):
 defaults to True, mount job will not wait till the completion, if False, this method will be blocking until the job completion.
job_class (optional):
 Defaults to “snapshot”, valid jobclasses are, [ snapshot | dedup | dedupasync | OnVault ]. job_class is applicable only when the restoretime is specified.
mount_mode (optional):
 Takes the value, physical (pRDM), independentvirtual (vRDM), or nfs (requires 9.0)
maptoallesxhosts (optional):
 Defaults to False. Map to all the ESXi hosts in the cluster.

Restore Options

vm_name (optional):
 For a new vm, VM name.
vm_poweron (optional):
 Defaults to False. Poweron the VM upon mount.

Any of the restoreoptions as listed in the udsinfo lsrestoreoptions can be specified as key=value command arguments.


For more information on the restore options refer to the Appendix F on the RESTfulAPI.pdf.


This method returns a tuple of (ActJob,ActImage), respectively the resulting Job and Image.
unmount_image(image=None, delete=True, nowait=True, pre_script='', post_script='')

Unmount a mounted image.


image:ActImage object of the mounted image.
delete:Delete the image after unmount
nowait:Don’t wait for the job completion.
pre_script (optional):
 Pre Script for the mount operation
post-script (optional):
 Post Script for the mount operation


Returns ActJob image with the resulting job
failover_database(source_application=None, target_host=None, pre_script='', post_script='', mount_mode='physical', label='Python Library', **kwargs)

This method would failover SQL database application from a