skip to Main Content

Below code has a call to a method called lago.

#!/usr/bin/env python
#
# Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
#

import sys

class InstallTest():
    """Ru Ovirt System Tests"""


    def run_command_checking_exit_code(command):
        """ Runs a command"""
        print("Command is " + str(command))
        print(command.read())
        print(command.close())

    def lago():
        """run the conductor profiles required to install OLVM """
        Log.test_objective('TODO')
        run_command_checking_exit_code('ls -al')
        """
        yum_list = ["epel-release", "centos-release-qemu-ev", "python-devel", "libvirt", "libvirt-devel", "libguestfs-tools", "libguestfs-devel", "gcc", "libffi-devel", "openssl-devel", "qemu-kvm-ev"]
        for yum in yum_list

        ret, msg, tup = self.client.run('/qa/conductor/tests/' + OSSE_OLV_VERSION + '/installer/installerfactory.py -s ' + OSSE_OLV_ENGINE_HOST + ' -t OS_OL7U6_X86_64_PVHVM_30GB -c 10.1.0.10 -o ' + self.log_jobdir_cc +'/vm_install_ol7.6', timeout=1000000)
        if ret:
            self.tc_fail('Creation of OLV Engine VM failed')
        ret, msg, tup = self.client.run('/qa/conductor/tests/' + OSSE_OLV_VERSION + '/installer/installerfactory.py -s ' + OSSE_OLV_ENGINE_HOST +' -p ovirt-engine -c 10.1.0.10 -o ' + self.log_jobdir_cc + '/engine_deploy', timeout=1000000)
        if ret:
            self.tc_fail('Install of OLV Engine Host failed')
        self.tc_pass('OLV Engine Host installed')
        """

    def main():
        lago()

    main()

However, it is shown to not exist in the output

Traceback (most recent call last):
  File "C:/Users/rafranci/Downloads/ovirt_st_setup.py", line 20, in <module>
    class InstallTest():
  File "C:/Users/rafranci/Downloads/ovirt_st_setup.py", line 65, in InstallTest
    main()
  File "C:/Users/rafranci/Downloads/ovirt_st_setup.py", line 63, in main
    lago()
NameError: name 'lago' is not defined

As far as I can see, there is no reason for this – ideas?

2

Answers


  1. You have to instantiate class to call its method.

    def main():
       InstallTest().lago()
    

    or

    def main():
       install_test = InstallTest()
       install_test.lago()
    

    This will work only if you are adding self parameter in your class.

    def lago(self):
        """run the conductor profiles required to install OLVM """
        Log.test_objective('TODO')
        run_command_checking_exit_code('ls -al')
    

    Also, I don’t understand why you needed class for this. If you don’t have any reason you can just remove the class and then your previous code will work fine as suggested in the comments.

    Login or Signup to reply.
  2. Check the changes in code:

    class InstallTest():
        """Ru Ovirt System Tests"""
    
    
        def run_command_checking_exit_code(command):
            """ Runs a command"""
            print("Command is " + str(command))
            print(command.read())
            print(command.close())
    
        def lago(self):
            """run the conductor profiles required to install OLVM """
            #Log.test_objective('TODO')
            #run_command_checking_exit_code('ls -al')
            """
            yum_list = ["epel-release", "centos-release-qemu-ev", "python-devel", "libvirt", "libvirt-devel", "libguestfs-tools", "libguestfs-devel", "gcc", "libffi-devel", "openssl-devel", "qemu-kvm-ev"]
            for yum in yum_list
    
            ret, msg, tup = self.client.run('/qa/conductor/tests/' + OSSE_OLV_VERSION + '/installer/installerfactory.py -s ' + OSSE_OLV_ENGINE_HOST + ' -t OS_OL7U6_X86_64_PVHVM_30GB -c 10.1.0.10 -o ' + self.log_jobdir_cc +'/vm_install_ol7.6', timeout=1000000)
            if ret:
                self.tc_fail('Creation of OLV Engine VM failed')
            ret, msg, tup = self.client.run('/qa/conductor/tests/' + OSSE_OLV_VERSION + '/installer/installerfactory.py -s ' + OSSE_OLV_ENGINE_HOST +' -p ovirt-engine -c 10.1.0.10 -o ' + self.log_jobdir_cc + '/engine_deploy', timeout=1000000)
            if ret:
                self.tc_fail('Install of OLV Engine Host failed')
            self.tc_pass('OLV Engine Host installed')
            """
    
        def main(self):
            self.lago()
    
        def __init__(self):
            self.main()
    InstallTest()
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search