fuel-main/test/integration/test_cobbler.py

48 lines
1.3 KiB
Python

import logging
import xmlrpclib
from time import sleep
from devops.helpers import wait, tcp_ping, http, ssh
from integration.base import Base
from helpers import SSHClient
class TestCobbler(Base):
def __init__(self, *args, **kwargs):
super(TestCobbler, self).__init__(*args, **kwargs)
self.remote = SSHClient()
self.logpath = "/var/log/chef/solo.log"
self.str_success = "Report handlers complete"
def setUp(self):
self.ip = self.get_admin_node_ip()
def tearDown(self):
pass
def test_cobbler_alive(self):
logging.info("Waiting for handlers to complete")
self.remote.connect_ssh(str(self.ip), "ubuntu", "r00tme")
count = 0
while True:
res = self.remote.execute("grep '%s' '%s'" % (self.str_success, self.logpath))
count += 1
if not res['exit_status']:
break
sleep(5)
if count == 200:
raise Exception("Chef handlers failed to complete")
self.remote.disconnect()
wait(lambda: http(host=self.ip, url='/cobbler_api', waited_code=501), timeout=60)
server = xmlrpclib.Server('http://%s/cobbler_api' % self.ip)
token = server.login('cobbler', 'cobbler')
assert server.ping() == True