'ssh_node_debug@1', 'plcsh_stress_test@1', SEP,
'ssh_node_boot@1', 'ssh_slice', 'check_initscripts', SEP,
'ssh_slice_sfa@1', 'sfa_delete_slice@1', 'sfa_delete_user@1', SEPSFA,
- 'check_tcp', 'check_netflow', SEP,
+ 'check_tcp', 'check_sys_slice', SEP,
'force_gather_logs', SEP,
]
other_steps = [
#command gets run in the plc's vm
def host_to_guest(self,command):
if self.options.plcs_use_lxc:
- return "ssh -o StrictHostKeyChecking=no %s %s"%(self.hostname(),command)
+ return "ssh -o StrictHostKeyChecking=no %s %s"%(self.vserverip,command)
else:
return "vserver %s exec %s"%(self.vservername,command)
def vm_timestamp_path (self):
if self.options.plcs_use_lxc:
- return "/var/lib/lxc/%s.timestamp"%(self.vservername)
+ return "/var/lib/lxc/%s/%s.timestamp"%(self.vservername,self.vservername)
else:
return "/vservers/%s.timestamp"%(self.vservername)
#start/stop the vserver
def start_guest_in_host(self):
if self.options.plcs_use_lxc:
- return "lxc-start --name=%s"%(self.vservername)
+ return "lxc-start --daemon --name=%s"%(self.vservername)
else:
return "vserver %s start"%(self.vservername)
domain=socket.gethostname().split('.',1)[1]
fqdn="%s.%s"%(self.plc_spec['host_box'],domain)
print "export BUILD=%s"%self.options.buildname
- print "export PLCHOST=%s"%fqdn
- print "export GUEST=%s"%self.plc_spec['vservername']
+ if self.options.plcs_use_lxc:
+ print "export PLCHOSTLXC=%s"%fqdn
+ else:
+ print "export PLCHOSTVS=%s"%fqdn
+ print "export GUESTNAME=%s"%self.plc_spec['vservername']
+ vplcname=self.plc_spec['vservername'].split('-')[-1]
+ print "export GUESTHOSTNAME=%s.%s"%(vplcname,domain)
# find hostname of first node
(hostname,qemubox) = self.all_node_infos()[0]
print "export KVMHOST=%s.%s"%(qemubox,domain)
return overall
# painfully enough, we need to allow for some time as netflow might show up last
- def check_netflow (self):
- "all nodes: check that the netflow slice is alive"
- return self.check_systemslice ('netflow')
+ def check_sys_slice (self):
+ "all nodes: check that a system slice is alive"
+# would probably make more sense to check for netflow,
+# but that one is currently not working in the lxc distro
+# return self.check_systemslice ('netflow')
+ return self.check_systemslice ('drl')
# we have the slices up already here, so it should not take too long
def check_systemslice (self, slicename, timeout_minutes=5, period=15):
test_nodes=self.all_nodes()
while test_nodes:
for test_node in test_nodes:
- if test_node.check_systemslice (slicename):
+ if test_node.check_systemslice (slicename,dry_run=self.options.dry_run):
utils.header ("ok")
test_nodes.remove(test_node)
else:
"gets all possible logs from plc's/qemu node's/slice's for future reference"
# (1.a) get the plc's /var/log/ and store it locally in logs/myplc.var-log.<plcname>/*
# (1.b) get the plc's /var/lib/pgsql/data/pg_log/ -> logs/myplc.pgsql-log.<plcname>/*
+ # (1.c) get the plc's /root/sfi -> logs/sfi.<plcname>/
# (2) get all the nodes qemu log and store it as logs/node.qemu.<node>.log
# (3) get the nodes /var/log and store is as logs/node.var-log.<node>/*
# (4) as far as possible get the slice's /var/log as logs/sliver.var-log.<sliver>/*
# (1.b)
print "-------------------- TestPlc.gather_logs : PLC's /var/lib/psql/data/pg_log/"
self.gather_pgsql_logs ()
+ # (1.c)
+ print "-------------------- TestPlc.gather_logs : PLC's /root/sfi/"
+ self.gather_root_sfi ()
# (2)
print "-------------------- TestPlc.gather_logs : nodes's QEMU logs"
for site_spec in self.plc_spec['sites']:
command = to_plc + "| tar -C logs/myplc.pgsql-log.%s -xf -"%self.name()
utils.system(command)
+ def gather_root_sfi (self):
+ utils.system("mkdir -p logs/sfi.%s"%self.name())
+ to_plc = self.actual_command_in_guest("tar -C /root/sfi/ -cf - .")
+ command = to_plc + "| tar -C logs/sfi.%s -xf -"%self.name()
+ utils.system(command)
+
def gather_nodes_var_logs (self):
for site_spec in self.plc_spec['sites']:
test_site = TestSite (self,site_spec)