- utils.header("checking for %s -- slice %s on nodes %r"%(msg,self.name(),tocheck))
- utils.header("max timeout is %d minutes, silent for %d minutes (period is %s)"%\
- (timeout_minutes,silent_minutes,period))
- while tocheck:
- for hostname in tocheck:
- (site_spec,node_spec) = self.test_plc.locate_hostname(hostname)
- date_test_ssh = TestSsh (hostname,key=private_key,username=self.name())
- command = date_test_ssh.actual_command("echo hostname ; hostname; echo id; id; echo uname -a ; uname -a")
- date = utils.system (command, silent=datetime.datetime.now() < graceout)
- if getattr(options,'dry_run',None): return True
- if expected: success = date==0
- else: success = date!=0
-
- if success:
- utils.header("OK %s - slice=%s@%s"%(msg,self.name(),hostname))
- tocheck.remove(hostname)
+ utils.header("checking {} -- slice {} on node {}".format(msg, self.name(), hostname))
+ site_spec, node_spec = self.test_plc.locate_hostname(hostname)
+ test_ssh = TestSsh (hostname, key=private_key, username=self.name())
+ full_command = test_ssh.actual_command(command)
+ retcod = utils.system (full_command, silent=True, timeout=10)
+ if getattr(options, 'dry_run', None):
+ return True
+ if expected:
+ success = retcod==0
+ else:
+ success = retcod!=0
+ if not success:
+ utils.header ("WRONG RESULT for {}".format(msg))
+ return success
+
+ # for TestPlc.slice_mapper__tasks
+ # check that /vservers/<> is present/deleted
+ def slice_fs_present__tasks (self, options):
+ "checks that /vservers/<slicename> exists on the filesystem"
+ return self.check_rootfs_tasks(options, expected=True)
+ def slice_fs_deleted__tasks (self, options):
+ "checks that /vservers/<slicename> has been properly wiped off"
+ return self.check_rootfs_tasks (options, expected=False)
+
+ def check_rootfs_tasks (self, options, expected):
+ # use constant admin key
+ local_key = "keys/key_admin.rsa"
+ node_infos = self.test_plc.all_node_infos()
+ rootfs="/vservers/{}".format(self.name())
+ class CompleterTaskRootfs (CompleterTaskNodeSsh):
+ def __init__ (self, nodename, qemuname):
+ CompleterTaskNodeSsh.__init__(self, nodename, qemuname, local_key, expected=expected,
+ command="ls -d {}".format(rootfs))
+ def failure_epilogue (self):
+ if expected:
+ print("Could not stat {} - was expected to be present".format(rootfs))