[libvirt] [Libvirt-test-API][PATCH 2/6] add flags option to create.py to support creating domain with running or paused state
Nan Zhang
nzhang at redhat.com
Wed Jun 29 16:00:11 UTC 2011
On 06/28/2011 01:54 PM, Guannan.ren wrote:
> ---
> repos/domain/create.py | 53 ++++++++++++++++++++++++++++++++++++-----------
> 1 files changed, 40 insertions(+), 13 deletions(-)
>
> diff --git a/repos/domain/create.py b/repos/domain/create.py
> index 343aba2..a06a2d3 100644
> --- a/repos/domain/create.py
> +++ b/repos/domain/create.py
> @@ -12,6 +12,7 @@
> nicmodel
> ifacetype
> source
> + flags
> """
>
> __author__ = 'Guannan Ren:gren at redhat.com'
> @@ -42,6 +43,9 @@ from utils.Python import utils
> from utils.Python import xmlbuilder
> from exception import LibvirtAPI
>
> +NONE = 0
> +START_PAUSED = 1
You may forget to set a variable for the VIR_DOMAIN_START_AUTODESTROY flag.
START_AUTODESTORY = 2
> +
> def usage():
> print '''usage: mandatory arguments:guesttype
> guestname
> @@ -54,8 +58,14 @@ def usage():
> nicmodel
> ifacetype
> source
> + flags
> '''
>
> +def return_close(conn, logger, ret):
> + conn.close()
> + logger.info("closed hypervisor connection")
> + return ret
> +
> def check_params(params):
> """Verify inputing parameter dictionary"""
> logger = params['logger']
> @@ -78,6 +88,13 @@ def create(params):
> guestname = params['guestname']
> test_result = False
>
> + flags = None
> + if params.has_key('flags'):
> + flags = params['flags']
> + if flags != "none" and flags != "start_paused":
> + logger.error("flags value either \"none\" or \"start_paused\"");
> + return 1
> +
> # Connect to local hypervisor connection URI
> util = utils.Utils()
> uri = util.get_uri('127.0.0.1')
> @@ -98,16 +115,26 @@ def create(params):
>
> # Create domain from xml
> try:
> - try:
> - domobj.create(domxml)
> - except LibvirtAPI, e:
> - logger.error("API error message: %s, error code is %s" %
> - (e.response()['message'], e.response()['code']))
> - logger.error("fail to create domain %s" % guestname)
> - return 1
> - finally:
> - conn.close()
> - logger.info("closed hypervisor connection")
> + if not flags or flags == "none":
> + domobj.create(domxml, NONE)
> + elif flags == "start_paused":
> + domobj.create(domxml, START_PAUSED)
> + else:
> + logger.error("flags error")
Also, needs to add a condition here for the flag which value is 2.
> + except LibvirtAPI, e:
> + logger.error("API error message: %s, error code is %s" %
> + (e.response()['message'], e.response()['code']))
> + logger.error("fail to create domain %s" % guestname)
> + return return_close(conn, logger, 1)
> +
> + if flags == "start_paused":
> + state = domobj.get_state(guestname)
> + if state == "paused":
> + logger.info("guest start with state paused successfully")
> + return return_close(conn, logger, 0)
> + else:
> + logger.error("guest state error")
> + return return_close(conn, logger, 1)
>
> logger.info("get the mac address of vm %s" % guestname)
> mac = util.get_dom_mac_addr(guestname)
> @@ -132,9 +159,9 @@ def create(params):
> if timeout == 0:
> logger.info("fail to power on vm %s" % guestname)
> test_result = False
> - return 1
> + return return_close(conn, logger, 1)
>
> if test_result:
> - return 0
> + return return_close(conn, logger, 0)
> else:
> - return 1
> + return return_close(conn, logger, 1)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20110630/437f5286/attachment-0001.htm>
More information about the libvir-list
mailing list