Exemplo n.º 1
0
def deployDAnsx(osc, da):
    Log.log_info("deployDA -- daname(type=%s): %s" %
                 (type(da.daname), Log.pformat(da.daname)))
    if not isinstance(da.daname, str):
        Log.log_abort("deployDA -- daname: %s" % (da.daname))
    pass
    da_dict = datastructUtils.get_obj_dict(da)
    Log.log_info("daTests.deployDA -- DA:\n%s" % (Log.pformat(da_dict)))
    osc.deployAppliance(daid, cluster, datastore, portgrgroup, ippool)
Exemplo n.º 2
0
def datest_update_n1(osc=None, da=None, daid=None):
    test_name = "Openstack DA Test Cases 'Update DA' -- Update Openstack DA -- Positive Tests with Supported SDN Controllers"
    test_funcname = "datest_tab1_update_n1"
    test_tags = [
        'openstack', 'da', 'update_da', 'sdn_controller', 'sdn', 'positive'
    ]
    test_desc = "Verify Virtualization Connectors Can Be Updated With Any Valid SDN Controller Type (Currently 'NONE' and 'NSC')"
    test_is_positive = True
    test_step = 0
    test_err_count = 0
    #fail_on_error       = True
    fail_on_error = False

    ##da.controllerType = "NSC"
    da.controllerType = "NONE"
    err_info = None
    Log.testBegin(test_name, test_funcname, test_desc, test_is_positive)
    daname = 'da-sdn-test'
    ##valid_sdn_controller_types = ['NONE', 'NSC']
    valid_sdn_controller_types = ['NONE']
    Log.log_info(
        "%s:Step %d\n -- Openstack VC Supported SDN Controller Types List[len=%d] - %s"
        % (test_funcname, test_step, len(valid_sdn_controller_types),
           valid_sdn_controller_types))
    #####
    da = copy.deepcopy(da)
    da_dict = datastructUtils.get_obj_dict(da)
    Log.log_info(
        "%s:Step %d\n -- Create (valid) base VC for 'update' testing:\n%s" %
        (test_funcname, test_step, Log.pformat(da_dict)))
    daid_to_update = updateDA(osc, da, daid)
    if not daid:
        Log.log_abort(
            "%s:Step %d\n -- Failed to create base VC for 'update' testing:\n%s"
            % (test_funcname, test_step, Log.pformat(da_dict)))
    pass
    da.update_daid = daid

    Log.log_info(
        "%s:Step %d\n -- Openstack VC w/Valid SDN Controller Type Test Finished"
        % (test_funcname, test_step))
    if test_err_count:
        Log.log_error("Exit Test %s -- Found %d Errors\n -- Err Info:\n%s" %
                      (test_funcname, test_err_count, err_info))
    else:
        Log.log_info("Exit Test %s -- All Tests Passed" % (test_funcname))
    pass
    Log.testEnd(test_name, test_funcname, test_desc, test_step, test_err_count)
Exemplo n.º 3
0
def deployDAostk(osc, daid):
    global Log
    Log.log_info("deployDA -- daname(type=%s): %s" %
                 (type(da.daname), Log.pformat(da.daname)))
    if not isinstance(da.daname, str):
        Log.log_abort("deployDA -- daname: %s" % (da.daname))
    pass
    da_dict = datastructUtils.get_obj_dict(da)
    Log.log_info("daTests.deployDA -- DA:\n%s" % (Log.pformat(da_dict)))
    #osc.deployOStackAppliance(daid, projectId, project, region, managementNetwork, mgmtId, inspectionNetwork, inspectId, ippool, count)
    osc.deployOStackAppliance(daid,
                              projectId='admin',
                              project='admin',
                              region='RegionOne',
                              managementNetwork='mgmt-net',
                              mgmtId=1,
                              inspectionNetwork='inspec-net',
                              inspectId=1,
                              ippool='null',
                              count=1)
Exemplo n.º 4
0
def updateDA(osc, da, daid, sync=True):
    global Log
    if not isinstance(da.daname, str):
        Log.log_abort("updateDA -- daname: %s" % (da.daname))
    pass
    da_dict = datastructUtils.get_obj_dict(da)
    if (not daid) and hasattr(da, 'daid'):
        daid = getattr(da, 'daid')
    pass
    da.daid = daid
    #print('daid:%s' % daid)
    if not daid:
        Log.log_abort("daTests.updateDA No 'daid' Given\n\n -- da:\n%s" %
                      (Log.pformat(da_dict)))
    pass
    if isinstance(daid, list):
        daid = daid[0]
    Log.log_info("daTests.updateDA -- da:\n%s" % (Log.pformat(da_dict)))
    if sync == True:
        osc.syncDistributedAppliancebyID(daid)
    else:
        osc.updateDA(da, daid)
Exemplo n.º 5
0
    def probe(self):
        outx.log_debug("Enter ovf.probe()\n\n -- Self:\n%s" %
                       (outx.pformat(get_obj_dict(self))))
        ##self.ovftool = getMatchingFile(self.ovftool, "ovftool.exe")

        outx.log_debug("ovf.probe --\n\n -- Self:\n%s" %
                       (outx.pformat(self.__dict__)))
        # start program

        vm_inv_url = "vi://%s:%s@%s/%s/host/%s" % (
            self.vcuser,
            self.vcpass,
            self.vcip,
            self.datacenter.replace(' ', '%20'),
            ##self.cluster.replace(' ','%20'),
            self.host.replace(' ', '%20'),
        )
        outx.log_debug("ovf.probe -- self.vcuser: \"%s\"" % (self.vcuser))
        outx.log_debug("ovf.probe -- vm_inv_url: \"%s\"" % (vm_inv_url))
        self.vm_inv_url = vm_inv_url
        self.vm_probe_url = (self.vm_inv_url + "/Resources/" + self.name)
        ## Power-Off VM Options:  "--powerOffSource", "--powerOffTarget" ##
        ovftool_arglist = [
            "--noSSLVerify",
            "--hideEula",
            "--acceptAllEulas",
            ##                     "--powerOffSource",
            self.vm_probe_url,
        ]
        ##outx.log_debug("ovfTool started at: %s" % currentTime())

        ovftool_exec_argv = [self.ovftool] + ovftool_arglist
        outx.log_debug(
            "ovf.probe -- Ovf Tool:\"%s\"\n--  Ovftool Arglist:\n%s" %
            (self.ovftool, outx.pformat(ovftool_arglist)))
        outx.log_info(
            "ovf.probe -- ovfTool 'probe' starting ...\n -- Ovftool Args:\n%s"
            % (outx.pformat(ovftool_exec_argv)))
        ## sleep(5)
        p = Popen(ovftool_exec_argv, stdout=PIPE, stderr=PIPE)
        ##returncode = p.wait()
        ##p.wait()
        (stdout_data, stderr_data) = p.communicate()
        #stdout_str = str(stdout_data)
        stdout_str = stdout_data.decode('ascii')
        #stderr_str = str(stderr_data)
        stderr_str = stderr_data.decode('ascii')
        rtncode = p.returncode
        outx.log_info(
            "ovf.probe -- ovfTool 'probe' completed\n -- Return Code: \"%s\"\n\n -- STDOUT: \"%s\"\n\n -- STDERR: \"%s\""
            % (rtncode, stdout_str, stderr_str))
        errmsg1 = "The attempted operation cannot be performed in the current state (Powered on)".lower(
        )
        errmsg2 = "Locator does not refer to an object".lower()
        stdout_lower = stdout_str.lower()
        stderr_lower = stderr_str.lower()
        if rtncode == 0:
            outx.log_info(
                "ovf.probe -- ovfTool 'probe' Returning 'True' -- VM was found on ESX/VCenter (1)"
            )
            return (True)  ## -- VM was found on ESX/VCenter
        elif (errmsg1 in stdout_lower) or (errmsg1 in stderr_lower):
            outx.log_info(
                "ovf.probe -- ovfTool 'probe' Returning 'True' -- VM was found on ESX/VCenter (2)"
            )
            return (True)  ## -- VM was found on ESX/VCenter
        elif (errmsg2 in stdout_lower) or (errmsg2 in stderr_lower):
            outx.log_info(
                "ovf.probe -- ovfTool 'probe' Returning 'False' -- VM was NOT found on ESX/VCenter (3)"
            )
            return (False)  ## -- VM was NOT found on ESX/VCenter
        else:
            outx.log_abort(
                "ovf.probe -- Unexpected Output from OvfTool 'probe' for Error-Code: \"%s\" -- \n\n -- STDOUT: \"%s\"\n\n -- STDERR: \"%s\""
                % (rtncode, stdout_str, stderr_str))
        pass
Exemplo n.º 6
0
    def deploy(self,
               synchronic=True,
               overwriteExistingVm=False,
               powerOnVm=True):
        if overwriteExistingVm is None:
            if hasattr(self,
                       'overwriteExistingVm') and (self.overwriteExistingVm
                                                   is not None):
                overwriteExistingVm = self.overwriteExistingVm
            else:
                overwriteExisting = False
                overwriteExistingVm = False
            pass
        pass
        overwriteOpt = ""
        poweroffOpt = ""
        if overwriteExistingVm:
            overwriteOpt = "--overwrite"
            poweroffOpt = "--powerOffTarget"
        pass

        outx.log_info("Enter ovf.deploy()\n\n -- Self:\n%s" %
                      (outx.pformat(get_obj_dict(self))))
        ##self.ovftool = getMatchingFile(self.ovftool, "ovftool.exe")
        self.sourceovf = getMatchingFile(self.sourceovf, ".ovf")
        outx.log_info("ovf.deploy -- sourceOVF: \"%s\"" % (self.sourceovf))

        if self.vmIsOscType:
            outx.log_info("ovf.deploy --\n\n -- Self:\n%s" %
                          (outx.pformat(self.__dict__)))
            # start program

            #######################################################################################
            ##
            ##            p = Popen([self.ovftool , "--powerOn" , "--noSSLVerify",  "--acceptAllEulas",
            ##                       "-ds=%s" % self.datastore, "-n=%s" % self.name, "--network=%s" % self.network, "--prop:sbm_ip_0=%s" % self.vmIp,
            ##                       "--prop:sbm_netmask_0=%s" % self.netmask, "--prop:sbm_dns1_0=%s" % self.dnslist, "--prop:sbm_ntp_0=%s" % self.ntplist,
            ##                       "--prop:sbm_gateway_0=%s" % self.gateway, "--diskMode=thin", "--prop:sbm_isSSHEnabled=%s" % self.enablessh, self.sourceovf,
            ##                       "vi://%s:%s@%s/%s/host/%s" %(self.vcuser, self.vcpass, self.vcip, self.datacenter.replace(' ','%20'), self.cluster.replace(' ','%20'))])
            ##
            #######################################################################################

            vm_inv_url = "vi://%s:%s@%s/%s/host/%s" % (
                self.vcuser,
                self.vcpass,
                self.vcip,
                self.datacenter.replace(' ', '%20'),
                ##self.cluster.replace(' ','%20'),
                self.host.replace(' ', '%20'),
            )
            outx.log_info("ovf.deploy -- self.vcuser: \"%s\"" % (self.vcuser))
            outx.log_info("ovf.deploy --  vm_inv_url: \"%s\"" % (vm_inv_url))
            self.vm_inv_url = vm_inv_url
            ovftool_arglist = [
                "--powerOn",
                "--noSSLVerify",
                "--hideEula",
                "--acceptAllEulas",
                poweroffOpt,
                overwriteOpt,
                "-ds=%s" % (self.datastore),
                "-n=%s" % (self.name),
                "--network=%s" % (self.network),
                "--prop:sbm_ip_0=%s" % (self.ip),
                "--prop:sbm_netmask_0=%s" % (self.netmask),
                "--prop:sbm_dns1_0=%s" % (self.dnslist),
                "--prop:sbm_ntp_0=%s" % (self.ntplist),
                "--prop:sbm_gateway_0=%s" % (self.gateway),
                "--diskMode=thin",
                "--prop:sbm_isSSHEnabled=%s" % (self.enablessh),
                self.sourceovf,
                vm_inv_url,
            ]
            ovftool_arglist = [x for x in ovftool_arglist if x]
            ##outx.log_info("ovfTool started at: %s" % currentTime())

            ovftool_exec_argv = [self.ovftool] + ovftool_arglist
            outx.log_info(
                "ovf.deploy -- Ovf Tool:\"%s\"\n--  Ovftool Arglist:\n%s" %
                (self.ovftool, outx.pformat(ovftool_arglist)))
            outx.log_info(
                "ovf.deploy -- ovfTool 'deploy' starting ...\n -- Ovftool Args:\n%s"
                % (outx.pformat(ovftool_exec_argv)))
            ##p = Popen( ovftool_exec_argv )

        else:

            #######################################################################################
            ##
            ##            p = Popen([self.ovftool , "--powerOn" , "--noSSLVerify",  "--acceptAllEulas",
            ##                       "-ds=%s" % self.datastore, "-n=%s" % self.name, "--network=%s" % self.network,
            ##                       "--diskMode=thin", self.sourceovf,
            ##                       "vi://%s:%s@%s/%s/host/%s" %(self.vcuser, self.vcpass, self.vcip, self.datacenter.replace(' ','%20'), self.cluster.replace(' ','%20'))])
            ##        outx.log_info("ovfTool started at: %s" % currentTime())
            ##
            #######################################################################################

            vm_inv_url = "vi://%s:%s@%s/%s/host/%s" % (
                self.vcuser,
                self.vcpass,
                self.vcip,
                self.datacenter.replace(' ', '%20'),
                ##self.cluster.replace(' ','%20'),
                self.host.replace(' ', '%20'),
            )
            outx.log_info("ovf.deploy -- self.vcuser: \"%s\"" % (self.vcuser))
            outx.log_info("ovf.deploy -- vm_inv_url: \"%s\"" % (vm_inv_url))
            self.vm_inv_url = vm_inv_url
            ovftool_arglist = [
                "--powerOn",
                "--noSSLVerify",
                "--hideEula",
                "--acceptAllEulas",
                "-ds=%s" % (self.datastore),
                "-n=%s" % (self.name),
                "--network=%s" % (self.network),
                "--diskMode=thin",
                self.sourceovf,
                vm_inv_url,
            ]
            outx.log_info("ovf.deploy -- Ovftool Arglist:\n%s" %
                          (outx.pformat(ovftool_arglist)))
            ##outx.log_info("ovfTool started at: %s" % currentTime())

            ovftool_exec_argv = [self.ovftool] + ovftool_arglist
            outx.log_info(
                "ovf.deploy -- Ovf Tool:\"%s\"\n--  Ovftool Arglist:\n%s" %
                (self.ovftool, outx.pformat(ovftool_arglist)))
            outx.log_info(
                "ovf.deploy -- ovfTool 'deploy' starting ...\n -- Ovftool Args:\n%s"
                % (outx.pformat(ovftool_exec_argv)))
            ##p = Popen( ovftool_exec_argv, stdout=PIPE, stderr=PIPE )

        pass

        p = Popen(ovftool_exec_argv, stdout=PIPE, stderr=PIPE)
        if synchronic:
            ##returncode = p.wait()
            ##p.wait()
            (stdout_data, stderr_data) = p.communicate()
            #stdout_str = str(stdout_data)
            stdout_str = stdout_data.decode('ascii')
            #stderr_str = str(stderr_data)
            stderr_str = stderr_data.decode('ascii')
            outx.log_info(
                "ovf.deploy -- ovfTool 'deploy' completed\n -- Return Code: \"%s\"\n\n -- STDOUT: \"%s\"\n\n -- STDERR: \"%s\""
                % (p.returncode, stdout_str, stderr_str))
            ## sleep(10)

        else:
            outx.log_info(
                "ovf.deploy -- Exiting before waiting to ovfTool to finish deployment"
            )

        outx.log_info(
            "ovf.deploy -- ovfTool 'probe' completed -- Return Code: \"%s\"" %
            (p.returncode))
        return (p)
Exemplo n.º 7
0
    def __init__(self,
                 GlobalData=None,
                 sourceOVF=None,
                 vmName=None,
                 vmType=None,
                 vmIp=None,
                 ovftool=None,
                 ovfElementXml=None,
                 ovfDatastruct=None,
                 ovfElement=None,
                 overwriteExistingVm=False,
                 vmNameSuffix=None,
                 powerOnVm=True):

        if vmType is not None:
            vmType = vmType.lower()
        pass

        _funcargs = {
            'sourceOVF': sourceOVF,
            'vmName': vmName,
            'vmType': vmType,
            'vmIp': vmIp,
            'ovftool': ovftool,
            'ovfElementXml': ovfElementXml,
            'ovfDatastruct': ovfDatastruct,
            'ovfElement': ovfElement,
            'overwriteExistingVm': overwriteExistingVm,
            'vmNameSuffix': vmNameSuffix,
            'powerOnVm': powerOnVm
        }

        ##_funcargs['GlobalData'] = GlobalData

        outx.log_info("Enter Ovf Class Constructor -- _funcargs(1):\n%s" %
                      (outx.pformat(_funcargs)))
        ## sleep(30)

        ovftool = (ovftool or (GlobalData and GlobalData['ovfToolExe']))
        if ovftool:
            self.ovftool = ovftool
        else:
            outx.log_abort(
                "Ovf Class Constructor -- No value for 'ovftool' found")
        pass

        outx.log_info("overwriteExistingVm(1): \"%s\"" % (overwriteExistingVm))
        if ovfDatastruct:
            pass
        elif ovfElement:
            ovfDatastruct = etToDatastruct(ovfElement)
            _funcargs['tree'] = ovfElement
            _funcargs['ovfElement'] = ovfElement
        elif tree:
            ovfDatastruct = etToDatastruct(tree)
            _funcargs['tree'] = tree
            _funcargs['ovfElement'] = tree
        elif ovfElementXml:
            tree = xml.etree.ElementTree.fromstring(ovfElementXml)
            ovfDatastruct = etToDatastruct(tree)
            _funcargs['tree'] = tree
            _funcargs['ovfElement'] = tree
            _funcargs['ovfElementXml'] = ovfElementXml
        else:
            outx.log_abort(
                "Ovf Class Constructor -- Expected one of 'ovfDatastruct', 'ovfElement', 'tree', or 'ovfElementXml' options for initialization parameters\n\n -- Func. Args.:\n%s"
                % (outx.pformat(_funcargs)))
        pass
        outx.log_info("overwriteExistingVm(2): \"%s\"" % (overwriteExistingVm))
        _funcargs['ovfDatastruct'] = ovfDatastruct

        if vmName is not None:
            #self.vmname = vmName
            self.name = vmName
        pass
        if vmType is not None:
            #self.vmtype = vmType
            self.type = vmType
        pass
        if vmIp is not None:
            #self.vmip = vmIp
            self.ip = vmIp
        pass
        if sourceOVF is not None:
            #self.sourceOVF = sourceOVF
            self.sourceovf = sourceOVF
        pass
        if ovftool is not None:
            self.ovftool = ovftool
        pass
        if vmNameSuffix is not None:
            #self.vmNameSuffix = vmNameSuffix
            self.namesuffix = vmNameSuffix
        pass
        if overwriteExistingVm is not None:
            #self.overwriteExistingVm = overwriteExistingVm
            self.overwriteexistingVm = overwriteExistingVm
        pass
        if powerOnVm is not None:
            #self.powerOnVm = powerOnVm
            self.poweronvm = powerOnVm
        pass

        outx.log_debug(
            "OVF Class Init  --  Self:\n%s\n\n -- Ovf Datastruct:\n%s" %
            (outx.objformat(self), outx.pformat(ovfDatastruct)))
        for k, v in ovfDatastruct.items():
            ##if not hasattr(self, k):
            if not (hasattr(self, k) and getattr(self, k) is not None):
                setattr(self, k, v)
            pass
        pass
        outx.log_debug("OVF Class Init --\n\n  --  OVF Instance -- Self:\n%s" %
                       (outx.objformat(self)))

        outx.log_debug("Ovf Class Constructor -- _funcargs(2):\n%s" %
                       (outx.pformat(_funcargs)))
        self.ovftool = (ovftool or GlobalData['ovfToolExe'])

        outx.log_debug("Ovf Class Constructor -- OvfToolExe: \"%s\"" %
                       (self.ovftool))

        ##  {   'ovf': {   'datacenter': 'Physical Datacenter',
        ##                 'datastore': 'datastore1 (9)',
        ##                 'gateway': '10.71.118.252',
        ##                 'host': '10.71.117.243',
        ##                 'netmask': '255.255.255.128',
        ##                 'network': 'dvPortGroup-118',
        ##                 'nscpluginfilename': 'NscSdnControllerPlugin.zip',
        ##                 'nsmpluginfilename': 'NsmMgrPlugin.zip',

        outx.log_debug("OVF Class Init --\n\n  --  OVF Instance -- Self:\n%s" %
                       (outx.objformat(self)))
        if vmNameSuffix is not None:
            #self.vmName = self.vmName + '-' + vmNameSuffix
            self.name = self.name + '-' + vmNameSuffix
        pass
        outx.log_debug("OVF Class Init --\n\n  --  OVF Instance -- Self:\n%s" %
                       (outx.objformat(self)))

        ##self.vmName           = (vmName or dictLookup(ovfDatastruct, ['vmName', 'name'], ignoreCase=True)
        if (hasattr(self, 'name') and getattr(self, 'name') is not None):
            outx.log_info("Name: \"%s\"" % (self.name))
            pass
        elif (hasattr(self, 'vmname') and getattr(self, 'vmname') is not None):
            self.name = self.vmname
            outx.log_info("Name: \"%s\"" % (self.name))
        else:
            self.name = dictLookup(ovfDatastruct,
                                   ['vmName', 'name', 'targetName'],
                                   ignoreCase=True)
        pass
        if not getattr(self, 'name', None):
            outx.log_abort(
                "OVF Class Init -- No 'name', 'vmname', or 'targetname' given")
        pass
        outx.log_debug("OVF Class Init --\n\n  --  OVF Instance -- Self:\n%s" %
                       (outx.objformat(self)))
        self.vmname = self.name
        self.targetName = self.name
        outx.log_info("Name: \"%s\"" % (self.name))

        if (hasattr(self, 'type') and getattr(self, 'type') is not None):
            pass
        elif (hasattr(self, 'vmtype') and getattr(self, 'vmtype') is not None):
            self.type = self.vmtype
        else:
            self.type = dictLookup(ovfDatastruct, ['vmType', 'type'],
                                   ignoreCase=True)
            if self.type:
                self.type = self.type.lower()
            pass
        pass
        outx.log_debug("OVF Class Init --\n\n  --  OVF Instance -- Self:\n%s" %
                       (outx.objformat(self)))

        if (hasattr(self, 'ip') and getattr(self, 'ip') is not None):
            pass
        elif (hasattr(self, 'vmip') and getattr(self, 'vmip') is not None):
            self.ip = self.ip
        else:
            self.ip = dictLookup(ovfDatastruct, ['vmIp', 'ip'],
                                 ignoreCase=True)
        pass
        outx.log_debug("OVF Class Init --\n\n  --  OVF Instance -- Self:\n%s" %
                       (outx.objformat(self)))
        if not getattr(self, 'name', None):
            outx.log_abort("OVF Class Init -- No 'ip', or 'vmip' given")
        pass

        self.vmIsOscType = (getattr(self, 'type', None) == 'osc')
        outx.log_debug("OVF Class Init --\n\n  --  OVF Instance -- Self:\n%s" %
                       (outx.objformat(self)))

        if hasattr(self, 'oscVctrUser'):
            self.vcuser = self.oscVctrUser
        if hasattr(self, 'oscVctrPass'):
            self.vcpass = self.oscVctrPass
        if hasattr(self, 'oscVctrIp'):
            self.vcip = self.oscVctrIp
        pass

        ##vcuser = self.vcUser
        vcuser = self.vcuser
        vcuser = vcuser.replace('@', " ")
        vcuser = vcuser.replace('.', " ")
        vcuser = vcuser.replace(':', " ")
        vcuserx = vcuser.split(" ")
        vcuser = vcuserx[0]
        self.vcuser = vcuser
        defaultVcUser = None
        if (GlobalData and ('defaultVcUser' in GlobalData)):
            defaultVcUser = GlobalData['defaultVcUser']
        defaultVcPass = None
        if (GlobalData and ('defaultVcPass' in GlobalData)):
            defaultVcPass = GlobalData['defaultVcPass']
        pass
        self.vcuser = (self.vcuser or defaultVcUser)
        self.vcpass = (self.vcpass or defaultVcPass)
        outx.log_debug("OVF Class Init --\n\n  --  OVF Instance -- Self:\n%s" %
                       (outx.objformat(self)))

        ##if not self.name:
        if not self.name:
            outx.log_abort(
                "Ovf Class Constructor -- No 'name' Given:\n\n -- Func Args:\n%s\n\n -- Self:\n%s"
                % (outx.pformat(_funcargs), outx.pformat(get_obj_dict(self))))
        pass
        outx.log_info("Ovf Class Constructor -- VM Name: \"%s\"" % (self.name))
        _funcargs['self_dict'] = get_obj_dict(self)
        outx.log_debug("OVF Class Init --\n\n  --  OVF Instance -- Self:\n%s" %
                       (outx.objformat(self)))

        outx.log_debug("Ovf Class Constructor -- Args:\n%s" %
                       (outx.pformat(_funcargs)))
        outx.log_debug("Ovf Class Constructor -- Self:\n%s" %
                       (outx.objformat(self)))
        ##if not getattr(self, 'sourceOVF', None):
        if not getattr(self, 'sourceovf', None):
            outx.log_abort("Ovf Class Constructor -- No 'sourceOVF' spefified")
        elif not os.path.exists(self.sourceovf):
            outx.log_abort(
                "Ovf Class Constructor -- sourceOVF: \"%s\" not found" %
                (self.sourceovf))
        pass
        if not os.path.exists(self.ovftool):
            outx.log_error(
                "Ovf Class Constructor -- Ovf Tool: \"%s\" not found" %
                (self.ovftool))
        pass
        outx.log_debug(
            "Exit OVF Class Init --\n\n  --  OVF Instance -- Self:\n%s" %
            (outx.objformat(self)))