salt.modules.parallels module

Manage Parallels Desktop VMs with prlctl

http://download.parallels.com/desktop/v9/ga/docs/en_US/Parallels%20Command%20Line%20Reference%20Guide.pdf

New in version 2016.3.0.

salt.modules.parallels.delete_snapshot(name, snap_name, runas=None)

Delete a snapshot

Note

Deleting a snapshot from which other snapshots are dervied will not delete the derived snapshots

Parameters:
  • name (str) -- Name/ID of VM whose snapshot will be deleted
  • snap_name (str) -- Name/ID of snapshot to delete
  • runas (str) -- The user that the prlctl command will be run as

Example:

salt '*' parallels.delete_snapshot macvm 'unneeded snapshot' runas=macdev
salt.modules.parallels.exec(name, command, runas=None)

Run a command on a VM

Parameters:
  • name (str) -- Name/ID of VM whose exec will be returned
  • command (str) -- Command to run on the VM
  • runas (str) -- The user that the prlctl command will be run as

Example:

salt '*' parallels.exec macvm 'find /etc/paths.d' runas=macdev
salt.modules.parallels.list_snapshots(name, snap_name=None, tree=False, names=False, runas=None)

List the snapshots

Parameters:
  • name (str) -- Name/ID of VM whose snapshots will be listed
  • snap_id (str) -- Name/ID of snapshot to display information about. If tree=True is also specified, display the snapshot subtree having this snapshot as the root snapshot
  • tree (bool) -- List snapshots in tree format rather than tabular format
  • names (bool) -- List snapshots as ID, name pairs
  • runas (str) -- The user that the prlctl command will be run as

Example:

salt '*' parallels.list_snapshots macvm runas=macdev
salt '*' parallels.list_snapshots macvm tree=True runas=macdev
salt '*' parallels.list_snapshots macvm snap_name=original runas=macdev
salt '*' parallels.list_snapshots macvm names=True runas=macdev
salt.modules.parallels.list_vms(name=None, info=False, all=False, args=None, runas=None)

List information about the VMs

Parameters:
  • name (str) -- Name/ID of VM to list; implies info=True
  • info (str) -- List extra information
  • all (bool) -- Also list non-running VMs
  • args (tuple) -- Additional arguments given to prctl list. This argument is mutually exclusive with the other arguments
  • runas (str) -- The user that the prlctl command will be run as

Example:

salt '*' parallels.list_vms runas=macdev
salt '*' parallels.list_vms name=macvm runas=macdev
salt '*' parallels.list_vms info=True runas=macdev
salt '*' parallels.list_vms ' -o uuid,status' all=True runas=macdev
salt.modules.parallels.prlctl(sub_cmd, args=None, runas=None)

Execute a prlctl command

Parameters:
  • sub_cmd (str) -- prlctl subcommand to execute
  • args (str) -- The arguments supplied to prlctl <sub_cmd>
  • runas (str) -- The user that the prlctl command will be run as

Example:

salt '*' parallels.prlctl user list runas=macdev
salt '*' parallels.prlctl exec 'macvm uname' runas=macdev
salt.modules.parallels.reset(name, runas=None)

Reset a VM by performing a hard shutdown and then a restart

Parameters:
  • name (str) -- Name/ID of VM to reset
  • runas (str) -- The user that the prlctl command will be run as

Example:

salt '*' parallels.reset macvm runas=macdev
salt.modules.parallels.restart(name, runas=None)

Restart a VM by gracefully shutting it down and then restarting it

Parameters:
  • name (str) -- Name/ID of VM to restart
  • runas (str) -- The user that the prlctl command will be run as

Example:

salt '*' parallels.restart macvm runas=macdev
salt.modules.parallels.revert_snapshot(name, snap_name, runas=None)

Revert a VM to a snapshot

Parameters:
  • name (str) -- Name/ID of VM to revert to a snapshot
  • snap_name (str) -- Name/ID of snapshot to revert to
  • runas (str) -- The user that the prlctl command will be run as

Example:

salt '*' parallels.revert_snapshot macvm base-with-updates runas=macdev
salt.modules.parallels.snapshot(name, snap_name=None, desc=None, runas=None)

Create a snapshot

Parameters:
  • name (str) -- Name/ID of VM to take a snapshot of
  • snap_name (str) -- Name of snapshot
  • desc (str) -- Description of snapshot
  • runas (str) -- The user that the prlctl command will be run as

Example:

salt '*' parallels.create_snapshot macvm snap_name=macvm-original runas=macdev
salt '*' parallels.create_snapshot macvm snap_name=macvm-updates desc='clean install with updates' runas=macdev
salt.modules.parallels.snapshot_id_to_name(name, snap_id, strict=False, runas=None)

Attempt to convert a snapshot ID to a snapshot name. If the snapshot has no name or if the ID is not found or invalid, an empty string will be returned

Parameters:
  • name (str) -- Name/ID of VM whose snapshots are inspected
  • snap_id (str) -- ID of the snapshot
  • strict (bool) -- Raise an exception if a name cannot be found for the given snap_id
  • runas (str) -- The user that the prlctl command will be run as

Example data

ID: {a5b8999f-5d95-4aff-82de-e515b0101b66}
Name: original
Date: 2016-03-04 10:50:34
Current: yes
State: poweroff
Description: original state

CLI Example:

salt '*' parallels.snapshot_id_to_name macvm a5b8999f-5d95-4aff-82de-e515b0101b66 runas=macdev
salt.modules.parallels.snapshot_name_to_id(name, snap_name, strict=False, runas=None)

Attempt to convert a snapshot name to a snapshot ID. If the name is not found an empty string is returned. If multiple snapshots share the same name, a list will be returned

Parameters:
  • name (str) -- Name/ID of VM whose snapshots are inspected
  • snap_name (str) -- Name of the snapshot
  • strict (bool) -- Raise an exception if multiple snapshot IDs are found
  • runas (str) -- The user that the prlctl command will be run as

CLI Example:

salt '*' parallels.snapshot_id_to_name macvm original runas=macdev
salt.modules.parallels.start(name, runas=None)

Start a VM

Parameters:
  • name (str) -- Name/ID of VM to start
  • runas (str) -- The user that the prlctl command will be run as

Example:

salt '*' parallels.start macvm runas=macdev
salt.modules.parallels.status(name, runas=None)

Status of a VM

Parameters:
  • name (str) -- Name/ID of VM whose status will be returned
  • runas (str) -- The user that the prlctl command will be run as

Example:

salt '*' parallels.status macvm runas=macdev
salt.modules.parallels.stop(name, kill=False, runas=None)

Stop a VM

Parameters:
  • name (str) -- Name/ID of VM to stop
  • kill (bool) -- Perform a hard shutdown
  • runas (str) -- The user that the prlctl command will be run as

Example:

salt '*' parallels.stop macvm runas=macdev
salt '*' parallels.stop macvm kill=True runas=macdev