Typo for VPP interfaces + More explicit exceptions for BashTask + Forgotten if-statem... 14/6414/1
authorMarcel Enguehard <[email protected]>
Tue, 25 Apr 2017 11:37:27 +0000 (13:37 +0200)
committerMarcel Enguehard <[email protected]>
Tue, 25 Apr 2017 11:37:27 +0000 (13:37 +0200)
Change-Id: I7b450b13e632899bef5ff37168a9454fe4e92640
Signed-off-by: Marcel Enguehard <[email protected]>
vicn/core/task.py
vicn/resource/linux/link.py
vicn/resource/lxd/lxc_container.py

index 9c92ef4..5332197 100644 (file)
@@ -68,7 +68,7 @@ class ConcurrentMixin:
         try:
             for t in self._elements:
                 await t.execute()
-            rets = await asyncio.gather(*[t.get_future() 
+            rets = await asyncio.gather(*[t.get_future()
                     for t in self._elements])
 
             # The result value is the "union" of all result values
@@ -116,7 +116,7 @@ class CompositionMixin:
             print('we need to cancel tasks not executed...')
             self.get_future().set_exception(e)
 
-Task, EmptyTask = SchedulingAlgebra(BaseTask, ConcurrentMixin, 
+Task, EmptyTask = SchedulingAlgebra(BaseTask, ConcurrentMixin,
         CompositionMixin, SequentialMixin)
 
 def task(fn):
@@ -287,7 +287,7 @@ class BashTask(Task):
         try:
             rv = fut.result()
             if self._parse is None and rv.return_value != 0:
-                raise Exception('Bash command failed', self.get_full_cmd(), rv)
+                raise Exception('Bash command failed on node {}'.format(self._node.name), self.get_full_cmd(), rv)
             if self._post:
                 self._post()
             if self._parse:
index b3ba4e0..a930b8a 100644 (file)
@@ -118,17 +118,17 @@ class Link(Channel):
 
         #XXX VPP
         if hasattr(self.src_node, 'vpp') and not self.src_node.vpp is None:
-            vpp_src = VPPInterface(parent = self.src,
+            vpp_src = VPPInterface(parent = self._src,
                     vpp = self.src_node.vpp,
-                    ip_address = Reference(self.src, 'ip_address'),
-                    device_name = 'vpp' + self.src.device_name)
+                    ip_address = Reference(self._src, 'ip_address'),
+                    device_name = 'vpp' + self._src.device_name)
             manager.commit_resource(vpp_src)
 
         if hasattr(self.dst_node, 'vpp') and not self.dst_node.vpp is None:
-            vpp_dst = VPPInterface(parent = self.dst,
+            vpp_dst = VPPInterface(parent = self._dst,
                     vpp = self.dst_node.vpp,
-                    ip_address = Reference(self.dst, 'ip_address'),
-                    device_name = 'vpp' + self.dst.device_name)
+                    ip_address = Reference(self._dst, 'ip_address'),
+                    device_name = 'vpp' + self._dst.device_name)
             manager.commit_resource(vpp_dst)
 
     #--------------------------------------------------------------------------
index afa64ab..7c678e5 100644 (file)
@@ -33,7 +33,7 @@ from vicn.core.commands             import ReturnValue
 from vicn.core.exception            import ResourceNotFound
 from vicn.core.requirement          import Requirement
 from vicn.core.resource_mgr         import wait_resource_task
-from vicn.core.task                 import task, inline_task, BashTask
+from vicn.core.task                 import task, inline_task, BashTask, EmptyTask
 from vicn.resource.linux.net_device import NetDevice
 from vicn.resource.node             import Node
 from vicn.resource.vpp.scripts      import APPARMOR_VPP_PROFILE
@@ -140,7 +140,9 @@ class LxcContainer(Node):
         """
         Make sure vpp_host is instanciated before starting the container.
         """
-        wait_vpp_host = wait_resource_task(self.node.vpp_host)
+        wait_vpp_host = EmptyTask()
+        if 'vpp' in self.profiles:
+            wait_vpp_host = wait_resource_task(self.node.vpp_host)
         create = self._create_container()
         start = self.__method_start__()
         return wait_vpp_host > (create > start)