On Thu, Nov 22, 2012 at 9:28 AM, <[email protected]> wrote:
> From: Satheesh Rajendran <[email protected]>
>
>
> Signed-off-by: Satheesh Rajendran <[email protected]>
> ---
> virttest/virsh.py | 197
> +++++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 files changed, 197 insertions(+), 0 deletions(-)
>
> diff --git a/virttest/virsh.py b/virttest/virsh.py
> index cab73af..bdaa596 100644
> --- a/virttest/virsh.py
> +++ b/virttest/virsh.py
> @@ -1052,6 +1052,203 @@ def pool_create_as(name, pool_type, target, extra="",
> **dargs):
> logging.error("Failed to create pool: %s." % detail)
> return False
>
> +def pool_list(option="", extra="", **dargs):
> + """
> + Prints the pool information of Host
> +
> + @param: option: options given to command
> + --all - gives all pool details, including inactive
> + --inactive - gives only inactive pool details
> + --details - Gives the complete details about the pools
> + @param: extra: to provide extra options(to enter invalid options)
> + """
> +
> + cmd = "pool-list %s %s" % (option, extra)
> + return command(cmd, **dargs)
> +
> +
> +def pool_define_as(name, pool_type, target, extra="", **dargs):
> + """
> + Define the pool from the arguments
> +
> + @param: name: Name of the pool to be defined
> + @param: typ: Type of the pool to be defined
> + dir - file system directory
> + disk - Physical Disk Device
> + fs - Pre-formatted Block Device
> + netfs - Network Exported Directory
> + iscsi - iSCSI Target
> + logical - LVM Volume Group
> + mpath - Multipath Device Enumerater
> + scsi - SCSI Host Adapter
> + @param: target: libvirt uri to send guest to
> + @param: extra: Free-form string of options
> + @param: dargs: standardized virsh function API keywords
> + @return: True if pool define command was successful
> + """
> +
> + if not name:
> + logging.error("Please give a pool name")
^ Only logging an error message seems too little. I'd either return
False right away, or implement fault tolerance (automatically choose a
name such as pool-[randomstring]).
> + types = [ 'dir', 'fs', 'netfs', 'disk', 'iscsi', 'logical' ]
> +
> + if pool_type and pool_type not in types:
> + logging.error("Only support pool types: %s." % types)
> + elif not pool_type:
> + pool_type = types[0]
> +
> + logging.info("Define %s type pool %s" % (pool_type, name))
> + cmd = "pool-define-as --name %s --type %s --target %s %s" \
> + % (name, pool_type, target, extra)
^ Better to use implicit line continuation
cmd = ("pool-define-as --name %s --type %s --target %s %s" %
(name, pool_type, target, extra))
> + dargs['ignore_status'] = False
> + try:
> + command(cmd, **dargs)
> + return True
> + except error.CmdError, detail:
> + logging.error("Failed to define pool: %s." % detail)
> + return False
> +
> +
> +def pool_start(name, extra="", **dargs):
> + """
> + Start the defined pool
> + @param: name: Name of the pool to be started
> + @param: extra: Free-form string of options
> + @param: dargs: standardized virsh function API keywords
> + @return: True if pool start command was successful
> + """
> +
> + if not name:
> + logging.error("Please give a pool name")
> +
> + cmd = "pool-start %s %s" % (name, extra)
> + dargs['ignore_status'] = False
> + try:
> + command(cmd, **dargs)
> + return True
> + except error.CmdError, detail:
> + logging.error("Failed to start a pool: %s" % detail)
> + return False
> +
> +
> +def pool_autostart(name, extra="", **dargs):
> + """
> + Mark for autostart of a pool
Mark a pool to auto start would be better...
Is this the equivalent of 'starting the pool with host start'?
> + @param: name: Name of the pool to be mark for autostart
> + @param: extra: Free-form string of options
> + @param: dargs: standardized virsh function API keywords
> + @return: True if pool autostart command was successful
> + """
> +
> + if not name:
> + logging.error("Please give a pool name")
Same comment as above, either return False or pick a name with a known
prefix and random suffix.
> + cmd = "pool-autostart %s %s" % (name, extra)
> + dargs['ignore_status'] = False
> + try:
> + command(cmd, **dargs)
> + return True
> + except error.CmdError, detail:
> + logging.error("Failed to mark autostart to a pool" % detail)
> + return False
> +
> +def pool_undefine(name, extra="", **dargs):
> + """
> + Undefine the given pool
> +
> + @param: name: Name of the pool to be undefined
> + @param: extra: Free-form string of options
> + @param: dargs: standardized virsh function API keywords
> + @return: True if pool undefine command was successful
> + """
> +
> + if not name:
> + logging.error("Please give a pool name")
Same as above.
> + cmd = "pool-undefine %s %s" % (name, extra)
> + dargs['ignore_status'] = False
> + try:
> + command(cmd, **dargs)
> + return True
> + except error.CmdError, detail:
> + logging.debug("Failed to undefine the pool" % detail)
> + return False
> +
> +
> +def vol_create_as(name, pool_name, capacity, allocation, format, \
The backslash is unnecessary.
> + extra="", **dargs):
> + """
> + To create the volumes on different available pool
> +
> + @param: name: Name of the volume to be created
> + @param: pool_name: Name of the pool to be used
> + @param: capacity: Size of the volume
> + @param: allocaltion: Size of the volume to be pre-allocated
> + @param: format: volume formats(e.g. raw, qed, qcow2)
> + @param: extra: Free-form string of options
> + @param: dargs: standardized virsh function API keywords
> + @return: True if pool undefine command was successful
> + """
> +
> + cmd = "vol-create-as"
> + if not pool_name:
> + logging.error("Please give a available pool name")
> + else:
> + cmd += " --pool %s" % (pool_name)
> + if not name:
> + logging.error("Please give a volume name")
^ Hmmm, I'm starting to think there's a reason for logging errors
rather than making the functions return right away. And what would be
the reason? Negative tests?
> + else:
> + cmd += " %s" % (name)
> + if not capacity:
> + logging.error("Please give the capacity of a volume")
> + else:
> + cmd += " --capacity %s" % (capacity)
> + if allocation:
> + cmd += " --allocation %s" % (allocation)
> + if format:
> + cmd += " --format %s" % (format)
> + if extra:
> + cmd += " %s" % (extra)
> +
> + try:
> + command(cmd, **dargs)
> + return True
> + except error.CmdError, detail:
> + logging.error("Failed to create a volume %s", detail)
> + return False
> +
> +
> +def vol_list(pool_name, extra="", **dargs):
> + """
> + List the volumes for a given pool
> + """
> +
> + if not pool_name:
> + logging.error("Please give a pool name")
> + cmd = "vol-list %s %s" % (pool_name, extra)
> + try:
> + return command(cmd, **dargs)
> + except error.CmdError, detail:
> + logging.debug("Failed to list the volume\n %s", detail)
> + return False
> +
> +def vol_delete(vol_name, pool_name, extra="", **dargs):
> + """
> + Delete a given volume
> + """
> +
> + if not vol_name:
> + logging.error("Please give a volume name to delete")
> + if not pool_name:
> + logging.error("Please give the respective pool name")
> +
> + cmd = "vol-delete %s %s %s" % (vol_name, pool_name, extra)
> + try:
> + command(cmd, **dargs)
> + return True
> + except CmdError, detail:
> + logging.error("Failed to delete a volume %", detail)
> + return False
> +
>
> def capabilities(option='', **dargs):
> """
> --
> 1.7.1
>
> _______________________________________________
> Virt-test-devel mailing list
> [email protected]
> https://www.redhat.com/mailman/listinfo/virt-test-devel
--
Lucas
_______________________________________________
Autotest-kernel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/autotest-kernel