Reputation: 61
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?
Upvotes: 1
Views: 52
Reputation: 1399
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.
Upvotes: 1
Reputation: 2086
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()
Upvotes: 1