Re-organise the source tree
Make this look more like a typical python source tree:
* Move all the module code under a new Vland directory
* Rename vland.py to vland
* Remove lots of old hacky path-mangling code
Change-Id: I6ec18ab5af69db1c213b1ceaddc6a0c4b52baad8
diff --git a/db/__init__.py b/Vland/__init__.py
similarity index 100%
copy from db/__init__.py
copy to Vland/__init__.py
diff --git a/config/__init__.py b/Vland/config/__init__.py
similarity index 100%
rename from config/__init__.py
rename to Vland/config/__init__.py
diff --git a/config/config.py b/Vland/config/config.py
similarity index 97%
rename from config/config.py
rename to Vland/config/config.py
index 67d3bfa..802f881 100644
--- a/config/config.py
+++ b/Vland/config/config.py
@@ -24,12 +24,7 @@
import ConfigParser
import os, sys, re
-if __name__ == '__main__':
- vlandpath = os.path.abspath(os.path.normpath(os.path.dirname(sys.argv[0])))
- sys.path.insert(0, vlandpath)
- sys.path.insert(0, "%s/.." % vlandpath)
-
-from errors import ConfigError
+from Vland.errors import ConfigError
def is_positive(text):
valid_true = ('1', 'y', 'yes', 't', 'true')
diff --git a/config/test-clashing-ports.cfg b/Vland/config/test-clashing-ports.cfg
similarity index 100%
rename from config/test-clashing-ports.cfg
rename to Vland/config/test-clashing-ports.cfg
diff --git a/config/test-invalid-DB.cfg b/Vland/config/test-invalid-DB.cfg
similarity index 100%
rename from config/test-invalid-DB.cfg
rename to Vland/config/test-invalid-DB.cfg
diff --git a/config/test-invalid-logging-level.cfg b/Vland/config/test-invalid-logging-level.cfg
similarity index 100%
rename from config/test-invalid-logging-level.cfg
rename to Vland/config/test-invalid-logging-level.cfg
diff --git a/config/test-invalid-vland.cfg b/Vland/config/test-invalid-vland.cfg
similarity index 100%
rename from config/test-invalid-vland.cfg
rename to Vland/config/test-invalid-vland.cfg
diff --git a/config/test-known-good.cfg b/Vland/config/test-known-good.cfg
similarity index 100%
rename from config/test-known-good.cfg
rename to Vland/config/test-known-good.cfg
diff --git a/config/test-missing-db-username.cfg b/Vland/config/test-missing-db-username.cfg
similarity index 100%
rename from config/test-missing-db-username.cfg
rename to Vland/config/test-missing-db-username.cfg
diff --git a/config/test-missing-dbname.cfg b/Vland/config/test-missing-dbname.cfg
similarity index 100%
rename from config/test-missing-dbname.cfg
rename to Vland/config/test-missing-dbname.cfg
diff --git a/config/test-reused-switch-names.cfg b/Vland/config/test-reused-switch-names.cfg
similarity index 100%
rename from config/test-reused-switch-names.cfg
rename to Vland/config/test-reused-switch-names.cfg
diff --git a/config/test-unknown-section.cfg b/Vland/config/test-unknown-section.cfg
similarity index 100%
rename from config/test-unknown-section.cfg
rename to Vland/config/test-unknown-section.cfg
diff --git a/config/test.py b/Vland/config/test.py
similarity index 96%
rename from config/test.py
rename to Vland/config/test.py
index 0ce11f6..046fbb2 100644
--- a/config/test.py
+++ b/Vland/config/test.py
@@ -1,12 +1,12 @@
import unittest, os, sys
vlandpath = os.path.abspath(os.path.normpath(os.path.dirname(sys.argv[0])))
sys.path.insert(0, vlandpath)
-sys.path.insert(0, "%s/.." % vlandpath)
+sys.path.insert(0, "%s/../.." % vlandpath)
os.chdir(vlandpath)
-from config.config import VlanConfig
-from errors import ConfigError
+from Vland.config.config import VlanConfig
+from Vland.errors import ConfigError
class MyTest(unittest.TestCase):
diff --git a/db/__init__.py b/Vland/db/__init__.py
similarity index 100%
rename from db/__init__.py
rename to Vland/db/__init__.py
diff --git a/db/db.py b/Vland/db/db.py
similarity index 98%
rename from db/db.py
rename to Vland/db/db.py
index 4fc9444..d5b541b 100644
--- a/db/db.py
+++ b/Vland/db/db.py
@@ -37,12 +37,7 @@
# it
DATABASE_SCHEMA_VERSION = 2
-if __name__ == '__main__':
- vlandpath = os.path.abspath(os.path.normpath(os.path.dirname(sys.argv[0])))
- sys.path.insert(0, vlandpath)
- sys.path.insert(0, "%s/.." % vlandpath)
-
-from errors import CriticalError, InputError, NotFoundError
+from Vland.errors import CriticalError, InputError, NotFoundError
class VlanDB:
def __init__(self, db_name="vland", username="vland", readonly=True):
diff --git a/db/init.doc b/Vland/db/init.doc
similarity index 100%
rename from db/init.doc
rename to Vland/db/init.doc
diff --git a/db/setup_db.py b/Vland/db/setup_db.py
similarity index 100%
rename from db/setup_db.py
rename to Vland/db/setup_db.py
diff --git a/drivers/CiscoCatalyst.py b/Vland/drivers/CiscoCatalyst.py
similarity index 100%
rename from drivers/CiscoCatalyst.py
rename to Vland/drivers/CiscoCatalyst.py
diff --git a/drivers/CiscoSX300.py b/Vland/drivers/CiscoSX300.py
similarity index 100%
rename from drivers/CiscoSX300.py
rename to Vland/drivers/CiscoSX300.py
diff --git a/drivers/Dummy.py b/Vland/drivers/Dummy.py
similarity index 100%
rename from drivers/Dummy.py
rename to Vland/drivers/Dummy.py
diff --git a/drivers/Mellanox.py b/Vland/drivers/Mellanox.py
similarity index 100%
rename from drivers/Mellanox.py
rename to Vland/drivers/Mellanox.py
diff --git a/drivers/NetgearXSM.py b/Vland/drivers/NetgearXSM.py
similarity index 100%
rename from drivers/NetgearXSM.py
rename to Vland/drivers/NetgearXSM.py
diff --git a/drivers/TPLinkTLSG2XXX.py b/Vland/drivers/TPLinkTLSG2XXX.py
similarity index 100%
rename from drivers/TPLinkTLSG2XXX.py
rename to Vland/drivers/TPLinkTLSG2XXX.py
diff --git a/drivers/__init__.py b/Vland/drivers/__init__.py
similarity index 100%
rename from drivers/__init__.py
rename to Vland/drivers/__init__.py
diff --git a/drivers/common.py b/Vland/drivers/common.py
similarity index 100%
rename from drivers/common.py
rename to Vland/drivers/common.py
diff --git a/errors.py b/Vland/errors.py
similarity index 100%
rename from errors.py
rename to Vland/errors.py
diff --git a/ipc/__init__.py b/Vland/ipc/__init__.py
similarity index 100%
rename from ipc/__init__.py
rename to Vland/ipc/__init__.py
diff --git a/ipc/client-new.py b/Vland/ipc/client-new.py
similarity index 100%
rename from ipc/client-new.py
rename to Vland/ipc/client-new.py
diff --git a/ipc/ipc.py b/Vland/ipc/ipc.py
similarity index 96%
rename from ipc/ipc.py
rename to Vland/ipc/ipc.py
index 8df1219..5961ed1 100644
--- a/ipc/ipc.py
+++ b/Vland/ipc/ipc.py
@@ -25,9 +25,7 @@
import sys
import logging
-vlandpath = os.path.abspath(os.path.normpath(os.path.dirname(sys.argv[0])))
-sys.path.insert(0, vlandpath)
-from errors import CriticalError, InputError, ConfigError, SocketError
+from Vland.errors import CriticalError, InputError, ConfigError, SocketError
class VlanIpc:
"""VLANd IPC class"""
diff --git a/ipc/server-new.py b/Vland/ipc/server-new.py
similarity index 100%
rename from ipc/server-new.py
rename to Vland/ipc/server-new.py
diff --git a/util.py b/Vland/util.py
similarity index 100%
rename from util.py
rename to Vland/util.py
diff --git a/visualisation/__init__.py b/Vland/visualisation/__init__.py
similarity index 100%
rename from visualisation/__init__.py
rename to Vland/visualisation/__init__.py
diff --git a/visualisation/graphics.py b/Vland/visualisation/graphics.py
similarity index 98%
rename from visualisation/graphics.py
rename to Vland/visualisation/graphics.py
index 55067d8..84083d0 100644
--- a/visualisation/graphics.py
+++ b/Vland/visualisation/graphics.py
@@ -25,12 +25,7 @@
import gd, os, sys
-if __name__ == '__main__':
- vlandpath = os.path.abspath(os.path.normpath(os.path.dirname(sys.argv[0])))
- sys.path.insert(0, vlandpath)
- sys.path.insert(0, "%s/.." % vlandpath)
-
-from errors import InputError
+from Vland.errors import InputError
class Graphics:
""" Code and config for the visualisation graphics module """
diff --git a/visualisation/visualisation.py b/Vland/visualisation/visualisation.py
similarity index 98%
rename from visualisation/visualisation.py
rename to Vland/visualisation/visualisation.py
index eb1edcd..603835d 100644
--- a/visualisation/visualisation.py
+++ b/Vland/visualisation/visualisation.py
@@ -29,16 +29,11 @@
import urlparse
import cStringIO
-if __name__ == '__main__':
- vlandpath = os.path.abspath(os.path.normpath(os.path.dirname(sys.argv[0])))
- sys.path.insert(0, vlandpath)
- sys.path.insert(0, "%s/.." % vlandpath)
-
-from errors import InputError
-from db.db import VlanDB
-from config.config import VlanConfig
-from graphics import Graphics,Switch
-from util import VlanUtil
+from Vland.errors import InputError
+from Vland.db.db import VlanDB
+from Vland.config.config import VlanConfig
+from Vland.visualisation.graphics import Graphics,Switch
+from Vland.util import VlanUtil
class VlandHTTPServer(HTTPServer):
""" Trivial wrapper for HTTPServer so we can include our own state. """
def __init__(self, server_address, handler, state):
diff --git a/vland.py b/vland
similarity index 95%
rename from vland.py
rename to vland
index 633e10f..7365a73 100755
--- a/vland.py
+++ b/vland
@@ -17,22 +17,19 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA.
#
-# Main VLANd module
+# Top-level VLANd daemon
#
import os, sys
import time
import logging
-vlandpath = os.path.abspath(os.path.normpath(os.path.dirname(sys.argv[0])))
-sys.path.insert(0, vlandpath)
-
-from config.config import VlanConfig
-from db.db import VlanDB
-from ipc.ipc import VlanIpc
-from errors import InputError, NotFoundError, SocketError
-from util import VlanUtil
-from visualisation.visualisation import Visualisation
+from Vland.config.config import VlanConfig
+from Vland.db.db import VlanDB
+from Vland.ipc.ipc import VlanIpc
+from Vland.errors import InputError, NotFoundError, SocketError
+from Vland.util import VlanUtil
+from Vland.visualisation.visualisation import Visualisation
class DaemonState:
""" Simple container for stuff to make for nicer syntax """
diff --git a/vland-admin b/vland-admin
index f635699..ced26eb 100755
--- a/vland-admin
+++ b/vland-admin
@@ -24,12 +24,9 @@
import argparse
import datetime, time
-vlandpath = os.path.abspath(os.path.normpath(os.path.dirname(sys.argv[0])))
-sys.path.insert(0, vlandpath)
-
-from errors import InputError, SocketError, NotFoundError, Error
-from config.config import VlanConfig
-from ipc.ipc import VlanIpc
+from Vland.errors import InputError, SocketError, NotFoundError, Error
+from Vland.config.config import VlanConfig
+from Vland.ipc.ipc import VlanIpc
prog = "vland-admin"
version = "0.7"
diff --git a/vland.service b/vland.service
index 83397c9..e998dba 100644
--- a/vland.service
+++ b/vland.service
@@ -6,7 +6,7 @@
[Service]
Type=simple
-ExecStart=/home/vland/vland/vland.py
+ExecStart=/home/vland/vland/vland
ExecStop=/home/vland/vland/vland-admin shutdown
WorkingDirectory=/home/vland/vland
User=vland