else:
logger.debug("Performing %s on %s", action, guid)
perform_action(guid)
+
+ # sync
+ if runner:
+ runner.sync()
# post hook
if poststep:
# Install application
try:
self._popen_ssh_command(
- "cd %(home)s && cd build && ( %(command)s ) > ${HOME}/%(home)s/installlog 2>&1 || ( tail ${HOME}/%(home)s/installlog >&2 && false )" % \
+ "cd %(home)s && cd build && ( %(command)s ) > ${HOME}/%(home)s/installlog 2>&1 || ( tail ${HOME}/%(home)s/{install,build}log >&2 && false )" % \
{
'command' : self._replace_paths(self.install),
'home' : server.shell_escape(self.home_path),
" test -f lib/libns3.so "
" ) || ( "
# Not working, rebuild
- "wget -q -c -O pybindgen-src.zip %(pybindgen_source_url)s && " # continue, to exploit the case when it has already been dl'ed
- "wget -q -c -O pygccxml-1.0.0.zip %(pygccxml_source_url)s && "
- "wget -q -c -O passfd-src.tar.gz %(passfd_source_url)s && "
- "wget -q -c -O ns3-src.tar.gz %(ns3_source_url)s && "
+ # Archive SHA1 sums to check
+ "echo '7158877faff2254e6c094bf18e6b4283cac19137 pygccxml-1.0.0.zip' > archive_sums.txt && "
+ "echo 'ddc7c5d288e1bacb1307114878956762c5146fac pybindgen-src.zip' >> archive_sums.txt && "
+ " ( " # check existing files
+ " sha1sum -c archive_sums.txt && "
+ " test -f passfd-src.tar.gz && "
+ " test -f ns3-src.tar.gz "
+ " ) || ( " # nope? re-download
+ " rm -f pybindgen-src.zip pygccxml-1.0.0.zip passfd-src.tar.gz ns3-src.tar.gz && "
+ " wget -q -c -O pybindgen-src.zip %(pybindgen_source_url)s && " # continue, to exploit the case when it has already been dl'ed
+ " wget -q -c -O pygccxml-1.0.0.zip %(pygccxml_source_url)s && "
+ " wget -q -c -O passfd-src.tar.gz %(passfd_source_url)s && "
+ " wget -q -c -O ns3-src.tar.gz %(ns3_source_url)s && "
+ " sha1sum -c archive_sums.txt " # Check SHA1 sums when applicable
+ " ) && "
"unzip -n pybindgen-src.zip && " # Do not overwrite files, to exploit the case when it has already been built
"unzip -n pygccxml-1.0.0.zip && "
"mkdir -p ns3-src && "
if self.delayed_exceptions:
typ,val,loc = self.delayed_exceptions[0]
raise typ,val,loc
+
+ def sync(self):
+ self.queue.join()
def worker(self):
while True:
def setUp(self):
self.root_dir = tempfile.mkdtemp()
- self.port_base = self.port_base + 100
+ self.__class__.port_base = self.port_base + 100
def tearDown(self):
try:
instance.defer_configure("authUser", pl_user)
instance.defer_configure("authPass", pl_pwd)
instance.defer_configure("plcHost", plchost)
+ instance.defer_configure("tapPortBase", self.port_base)
return instance
def setUp(self):
self.root_dir = tempfile.mkdtemp()
- self.port_base = self.port_base + 100
+ self.__class__.port_base = self.port_base + 100
def tearDown(self):
try:
pl_desc.set_attribute_value("authUser", pl_user)
pl_desc.set_attribute_value("authPass", pl_pwd)
pl_desc.set_attribute_value("plcHost", plchost)
+ pl_desc.set_attribute_value("tapPortBase", self.port_base)
return pl_desc, exp_desc
def setUp(self):
self.root_dir = tempfile.mkdtemp()
- self.port_base = self.port_base + 100
+ self.__class__.port_base = self.port_base + 100
def tearDown(self):
try:
pl_desc.set_attribute_value("authUser", pl_user)
pl_desc.set_attribute_value("authPass", pl_pwd)
pl_desc.set_attribute_value("plcHost", plchost1)
+ pl_desc.set_attribute_value("tapPortBase", self.port_base)
pl_desc2 = exp_desc.add_testbed_description(pl_provider)
pl_desc2.set_attribute_value("homeDirectory", self.root_dir+"v2")
pl_desc2.set_attribute_value("authUser", pl_user)
pl_desc2.set_attribute_value("authPass", pl_pwd)
pl_desc2.set_attribute_value("plcHost", plchost2)
+ pl_desc2.set_attribute_value("tapPortBase", self.port_base+100)
return pl_desc, pl_desc2, exp_desc
def setUp(self):
self.root_dir = tempfile.mkdtemp()
- self.port_base = self.port_base + 100
+ self.__class__.port_base = self.port_base + 100
def tearDown(self):
try:
pl_desc.set_attribute_value("authUser", pl_user)
pl_desc.set_attribute_value("authPass", pl_pwd)
pl_desc.set_attribute_value("plcHost", plchost1)
+ pl_desc.set_attribute_value("tapPortBase", self.port_base)
pl_desc2 = exp_desc.add_testbed_description(pl_provider)
pl_desc2.set_attribute_value("homeDirectory", self.root_dir+"v2")
pl_desc2.set_attribute_value("authUser", pl_user)
pl_desc2.set_attribute_value("authPass", pl_pwd)
pl_desc2.set_attribute_value("plcHost", plchost2)
+ pl_desc.set_attribute_value("tapPortBase", self.port_base+100)
return pl_desc, pl_desc2, exp_desc
def setUp(self):
self.root_dir = tempfile.mkdtemp()
- self.port_base = self.port_base + 100
+ self.__class__.port_base = self.port_base + 100
def tearDown(self):
try:
pl_desc.set_attribute_value("authUser", pl_user)
pl_desc.set_attribute_value("authPass", pl_pwd)
pl_desc.set_attribute_value("plcHost", plchost)
+ pl_desc.set_attribute_value("tapPortBase", self.port_base)
return pl_desc, exp_desc