Check to see if slice is running first before creating /vsys directory.
authorFaiyaz Ahmed <faiyaza@cs.princeton.edu>
Fri, 21 Mar 2008 18:27:10 +0000 (18:27 +0000)
committerFaiyaz Ahmed <faiyaza@cs.princeton.edu>
Fri, 21 Mar 2008 18:27:10 +0000 (18:27 +0000)
vsys.py

diff --git a/vsys.py b/vsys.py
index da79b92..5766f82 100644 (file)
--- a/vsys.py
+++ b/vsys.py
@@ -5,6 +5,7 @@
 
 import logger
 import os
+import vserver
 from sets import Set
 
 VSYSCONF="/etc/vsys.conf"
@@ -27,14 +28,21 @@ def GetSlivers(data):
     for sliver in data['slivers']:
         for attribute in sliver['attributes']:
             if attribute['name'] == 'vsys':
-                if sliver['name'] not in slices:
-                    # add to conf
-                    slices.append(sliver['name'])
-                    # As the name implies, when we find an attribute, we
-                    createVsysDir(sliver['name'])
-                # add it to our list of slivers that need vsys
-                if attribute['value'] in scripts.keys():
-                    scripts[attribute['value']].append(sliver['name'])
+                # Check to see if sliver is running.  If not, continue
+                try:
+                    if vserver.VServer(sliver['name']).is_running():
+                        if sliver['name'] not in slices:
+                            # add to conf
+                            slices.append(sliver['name'])
+                            # As the name implies, when we find an attribute, we
+                            createVsysDir(sliver['name'])
+                        # add it to our list of slivers that need vsys
+                        if attribute['value'] in scripts.keys():
+                            scripts[attribute['value']].append(sliver['name'])
+                except:
+                    logger.log("vsys:  sliver %s not running yet.  Deferring." \
+                               % sliver['name'])
+                    pass
  
     # Write the conf
     writeConf(slices, parseConf())