From e30b3a7b16418dc44cbda934459fa1a5a4e74306 Mon Sep 17 00:00:00 2001
From: Marc Fiuczynski <mef@cs.princeton.edu>
Date: Tue, 26 May 2009 21:40:41 +0000
Subject: [PATCH] move legacy v42 methods to Legacy/ sub directory

---
 Makefile                                      | 18 ++++++++++++++-
 PLC/API.py                                    |  6 ++++-
 PLC/{Methods => Legacy}/AddNodeNetwork.py     |  0
 .../AddNodeNetworkSetting.py                  |  0
 .../AddNodeNetworkSettingType.py              |  0
 PLC/{Methods => Legacy}/AddSliceAttribute.py  |  0
 .../AddSliceAttributeType.py                  |  0
 PLC/{Methods => Legacy}/DeleteNodeNetwork.py  |  0
 .../DeleteNodeNetworkSetting.py               |  0
 .../DeleteNodeNetworkSettingType.py           |  0
 .../DeleteSliceAttribute.py                   |  0
 .../DeleteSliceAttributeType.py               |  0
 .../GetNodeNetworkSettingTypes.py             |  0
 .../GetNodeNetworkSettings.py                 |  0
 PLC/{Methods => Legacy}/GetNodeNetworks.py    |  0
 .../GetSliceAttributeTypes.py                 |  0
 PLC/{Methods => Legacy}/GetSliceAttributes.py |  0
 PLC/{Methods => Legacy}/UpdateNodeNetwork.py  |  0
 .../UpdateNodeNetworkSetting.py               |  0
 .../UpdateNodeNetworkSettingType.py           |  0
 .../UpdateSliceAttribute.py                   |  0
 .../UpdateSliceAttributeType.py               |  0
 PLC/Legacy/__init__.py                        | 23 +++++++++++++++++++
 PLC/Methods/__init__.py                       | 20 ----------------
 24 files changed, 45 insertions(+), 22 deletions(-)
 rename PLC/{Methods => Legacy}/AddNodeNetwork.py (100%)
 rename PLC/{Methods => Legacy}/AddNodeNetworkSetting.py (100%)
 rename PLC/{Methods => Legacy}/AddNodeNetworkSettingType.py (100%)
 rename PLC/{Methods => Legacy}/AddSliceAttribute.py (100%)
 rename PLC/{Methods => Legacy}/AddSliceAttributeType.py (100%)
 rename PLC/{Methods => Legacy}/DeleteNodeNetwork.py (100%)
 rename PLC/{Methods => Legacy}/DeleteNodeNetworkSetting.py (100%)
 rename PLC/{Methods => Legacy}/DeleteNodeNetworkSettingType.py (100%)
 rename PLC/{Methods => Legacy}/DeleteSliceAttribute.py (100%)
 rename PLC/{Methods => Legacy}/DeleteSliceAttributeType.py (100%)
 rename PLC/{Methods => Legacy}/GetNodeNetworkSettingTypes.py (100%)
 rename PLC/{Methods => Legacy}/GetNodeNetworkSettings.py (100%)
 rename PLC/{Methods => Legacy}/GetNodeNetworks.py (100%)
 rename PLC/{Methods => Legacy}/GetSliceAttributeTypes.py (100%)
 rename PLC/{Methods => Legacy}/GetSliceAttributes.py (100%)
 rename PLC/{Methods => Legacy}/UpdateNodeNetwork.py (100%)
 rename PLC/{Methods => Legacy}/UpdateNodeNetworkSetting.py (100%)
 rename PLC/{Methods => Legacy}/UpdateNodeNetworkSettingType.py (100%)
 rename PLC/{Methods => Legacy}/UpdateSliceAttribute.py (100%)
 rename PLC/{Methods => Legacy}/UpdateSliceAttributeType.py (100%)
 create mode 100644 PLC/Legacy/__init__.py

diff --git a/Makefile b/Makefile
index 730bad46..b5677aae 100644
--- a/Makefile
+++ b/Makefile
@@ -8,7 +8,7 @@
 #
 
 # Metafiles - manage Legacy/ and Accessors by hand
-init := PLC/__init__.py PLC/Methods/__init__.py 
+init := PLC/__init__.py PLC/Methods/__init__.py PLC/Legacy/__init__.py
 
 # python-pycurl and python-psycopg2 avail. from fedora 5
 # we used to ship our own version of psycopg2 and pycurl, for fedora4
@@ -78,7 +78,23 @@ endif
 PLC/Methods/__init__.py: 
 	(echo '## Please use make index to update this file' ; echo 'native_methods = """' ; cd PLC/Methods; ls -1 *.py system/*.py | grep -v __init__ | sed -e 's,.py$$,,' -e 's,system/,system.,' ; echo '""".split()') > $@
 
+########## Legacy/
+# the current content of __init__.py
+LEGACY_now := $(sort $(shell fgrep -v '"' PLC/Legacy/__init__.py 2>/dev/null))
+# what should be declared
+LEGACY_paths := $(filter-out %/__init__.py, $(wildcard PLC/Legacy/*.py))
+LEGACY_files := $(sort $(notdir $(LEGACY_paths:.py=)))
+
+ifneq ($(LEGACY_now),$(LEGACY_files))
+PLC/Legacy/__init__.py: force
+endif
+PLC/Legacy/__init__.py: 
+	(echo '## Please use make index to update this file' ; echo 'native_methods = """' ; cd PLC/Legacy; ls -1 *.py | grep -v __init__ | sed -e 's,.py$$,,' -e 's,system/,system.,' ; echo '""".split()') > $@
+
 ##########
+
+
+
 force:
 
 .PHONY: all install force clean index tags $(subdirs)
diff --git a/PLC/API.py b/PLC/API.py
index 6ea37bc6..bae02677 100644
--- a/PLC/API.py
+++ b/PLC/API.py
@@ -83,6 +83,7 @@ except ImportError:
 from PLC.Config import Config
 from PLC.Faults import *
 import PLC.Methods
+import PLC.Legacy
 import PLC.Accessors
 
 def import_deep(name):
@@ -96,6 +97,7 @@ class PLCAPI:
 
     # flat list of method names
     native_methods = PLC.Methods.native_methods
+    legacy_methods = PLC.Legacy.native_methods
 
     # other_methods_map : dict {methodname: fullpath}
     # e.g. 'Accessors' -> 'PLC.Accessors.Accessors'
@@ -109,7 +111,7 @@ class PLCAPI:
             for method in getattr(import_deep(fullpath),"methods"):
                 other_methods_map[method] = fullpath
 
-    all_methods = native_methods + other_methods_map.keys()
+    all_methods = native_methods + legacy_methods + other_methods_map.keys()
     
     def __init__(self, config = "/etc/planetlab/plc_config", encoding = "utf-8"):
         self.encoding = encoding
@@ -143,6 +145,8 @@ class PLCAPI:
             classname = method.split(".")[-1]
             if method in self.native_methods:
                 fullpath="PLC.Methods." + method
+            elif method in self.legacy_methods:
+                fullpath="PLC.Legacy." + method
             else:
                 fullpath=self.other_methods_map[method]
             module = __import__(fullpath, globals(), locals(), [classname])
diff --git a/PLC/Methods/AddNodeNetwork.py b/PLC/Legacy/AddNodeNetwork.py
similarity index 100%
rename from PLC/Methods/AddNodeNetwork.py
rename to PLC/Legacy/AddNodeNetwork.py
diff --git a/PLC/Methods/AddNodeNetworkSetting.py b/PLC/Legacy/AddNodeNetworkSetting.py
similarity index 100%
rename from PLC/Methods/AddNodeNetworkSetting.py
rename to PLC/Legacy/AddNodeNetworkSetting.py
diff --git a/PLC/Methods/AddNodeNetworkSettingType.py b/PLC/Legacy/AddNodeNetworkSettingType.py
similarity index 100%
rename from PLC/Methods/AddNodeNetworkSettingType.py
rename to PLC/Legacy/AddNodeNetworkSettingType.py
diff --git a/PLC/Methods/AddSliceAttribute.py b/PLC/Legacy/AddSliceAttribute.py
similarity index 100%
rename from PLC/Methods/AddSliceAttribute.py
rename to PLC/Legacy/AddSliceAttribute.py
diff --git a/PLC/Methods/AddSliceAttributeType.py b/PLC/Legacy/AddSliceAttributeType.py
similarity index 100%
rename from PLC/Methods/AddSliceAttributeType.py
rename to PLC/Legacy/AddSliceAttributeType.py
diff --git a/PLC/Methods/DeleteNodeNetwork.py b/PLC/Legacy/DeleteNodeNetwork.py
similarity index 100%
rename from PLC/Methods/DeleteNodeNetwork.py
rename to PLC/Legacy/DeleteNodeNetwork.py
diff --git a/PLC/Methods/DeleteNodeNetworkSetting.py b/PLC/Legacy/DeleteNodeNetworkSetting.py
similarity index 100%
rename from PLC/Methods/DeleteNodeNetworkSetting.py
rename to PLC/Legacy/DeleteNodeNetworkSetting.py
diff --git a/PLC/Methods/DeleteNodeNetworkSettingType.py b/PLC/Legacy/DeleteNodeNetworkSettingType.py
similarity index 100%
rename from PLC/Methods/DeleteNodeNetworkSettingType.py
rename to PLC/Legacy/DeleteNodeNetworkSettingType.py
diff --git a/PLC/Methods/DeleteSliceAttribute.py b/PLC/Legacy/DeleteSliceAttribute.py
similarity index 100%
rename from PLC/Methods/DeleteSliceAttribute.py
rename to PLC/Legacy/DeleteSliceAttribute.py
diff --git a/PLC/Methods/DeleteSliceAttributeType.py b/PLC/Legacy/DeleteSliceAttributeType.py
similarity index 100%
rename from PLC/Methods/DeleteSliceAttributeType.py
rename to PLC/Legacy/DeleteSliceAttributeType.py
diff --git a/PLC/Methods/GetNodeNetworkSettingTypes.py b/PLC/Legacy/GetNodeNetworkSettingTypes.py
similarity index 100%
rename from PLC/Methods/GetNodeNetworkSettingTypes.py
rename to PLC/Legacy/GetNodeNetworkSettingTypes.py
diff --git a/PLC/Methods/GetNodeNetworkSettings.py b/PLC/Legacy/GetNodeNetworkSettings.py
similarity index 100%
rename from PLC/Methods/GetNodeNetworkSettings.py
rename to PLC/Legacy/GetNodeNetworkSettings.py
diff --git a/PLC/Methods/GetNodeNetworks.py b/PLC/Legacy/GetNodeNetworks.py
similarity index 100%
rename from PLC/Methods/GetNodeNetworks.py
rename to PLC/Legacy/GetNodeNetworks.py
diff --git a/PLC/Methods/GetSliceAttributeTypes.py b/PLC/Legacy/GetSliceAttributeTypes.py
similarity index 100%
rename from PLC/Methods/GetSliceAttributeTypes.py
rename to PLC/Legacy/GetSliceAttributeTypes.py
diff --git a/PLC/Methods/GetSliceAttributes.py b/PLC/Legacy/GetSliceAttributes.py
similarity index 100%
rename from PLC/Methods/GetSliceAttributes.py
rename to PLC/Legacy/GetSliceAttributes.py
diff --git a/PLC/Methods/UpdateNodeNetwork.py b/PLC/Legacy/UpdateNodeNetwork.py
similarity index 100%
rename from PLC/Methods/UpdateNodeNetwork.py
rename to PLC/Legacy/UpdateNodeNetwork.py
diff --git a/PLC/Methods/UpdateNodeNetworkSetting.py b/PLC/Legacy/UpdateNodeNetworkSetting.py
similarity index 100%
rename from PLC/Methods/UpdateNodeNetworkSetting.py
rename to PLC/Legacy/UpdateNodeNetworkSetting.py
diff --git a/PLC/Methods/UpdateNodeNetworkSettingType.py b/PLC/Legacy/UpdateNodeNetworkSettingType.py
similarity index 100%
rename from PLC/Methods/UpdateNodeNetworkSettingType.py
rename to PLC/Legacy/UpdateNodeNetworkSettingType.py
diff --git a/PLC/Methods/UpdateSliceAttribute.py b/PLC/Legacy/UpdateSliceAttribute.py
similarity index 100%
rename from PLC/Methods/UpdateSliceAttribute.py
rename to PLC/Legacy/UpdateSliceAttribute.py
diff --git a/PLC/Methods/UpdateSliceAttributeType.py b/PLC/Legacy/UpdateSliceAttributeType.py
similarity index 100%
rename from PLC/Methods/UpdateSliceAttributeType.py
rename to PLC/Legacy/UpdateSliceAttributeType.py
diff --git a/PLC/Legacy/__init__.py b/PLC/Legacy/__init__.py
new file mode 100644
index 00000000..ead4e2a4
--- /dev/null
+++ b/PLC/Legacy/__init__.py
@@ -0,0 +1,23 @@
+## Please use make index to update this file
+native_methods = """
+AddNodeNetwork
+AddNodeNetworkSetting
+AddNodeNetworkSettingType
+AddSliceAttribute
+AddSliceAttributeType
+DeleteNodeNetwork
+DeleteNodeNetworkSetting
+DeleteNodeNetworkSettingType
+DeleteSliceAttribute
+DeleteSliceAttributeType
+GetNodeNetworkSettings
+GetNodeNetworkSettingTypes
+GetNodeNetworks
+GetSliceAttributes
+GetSliceAttributeTypes
+UpdateNodeNetwork
+UpdateNodeNetworkSetting
+UpdateNodeNetworkSettingType
+UpdateSliceAttribute
+UpdateSliceAttributeType
+""".split()
diff --git a/PLC/Methods/__init__.py b/PLC/Methods/__init__.py
index c7ea6dc0..5fb7ada6 100644
--- a/PLC/Methods/__init__.py
+++ b/PLC/Methods/__init__.py
@@ -16,9 +16,6 @@ AddMessage
 AddNetworkMethod
 AddNetworkType
 AddNodeGroup
-AddNodeNetwork
-AddNodeNetworkSetting
-AddNodeNetworkSettingType
 AddNode
 AddNodeTag
 AddNodeToPCU
@@ -36,8 +33,6 @@ AddRoleToPerson
 AddSession
 AddSiteAddress
 AddSite
-AddSliceAttribute
-AddSliceAttributeType
 AddSliceInstantiation
 AddSlice
 AddSliceTag
@@ -70,9 +65,6 @@ DeleteNetworkMethod
 DeleteNetworkType
 DeleteNodeFromPCU
 DeleteNodeGroup
-DeleteNodeNetwork
-DeleteNodeNetworkSetting
-DeleteNodeNetworkSettingType
 DeleteNode
 DeleteNodeTag
 DeleteNodeType
@@ -87,8 +79,6 @@ DeleteRoleFromPerson
 DeleteRole
 DeleteSession
 DeleteSite
-DeleteSliceAttribute
-DeleteSliceAttributeType
 DeleteSliceFromNodes
 DeleteSliceFromNodesWhitelist
 DeleteSliceInstantiation
@@ -115,9 +105,6 @@ GetMessages
 GetNetworkMethods
 GetNetworkTypes
 GetNodeGroups
-GetNodeNetworkSettings
-GetNodeNetworkSettingTypes
-GetNodeNetworks
 GetNodes
 GetNodeTags
 GetNodeTypes
@@ -133,8 +120,6 @@ GetRoles
 GetSession
 GetSessions
 GetSites
-GetSliceAttributes
-GetSliceAttributeTypes
 GetSliceInstantiations
 GetSliceKeys
 GetSlices
@@ -183,9 +168,6 @@ UpdateInterfaceTag
 UpdateKey
 UpdateMessage
 UpdateNodeGroup
-UpdateNodeNetwork
-UpdateNodeNetworkSetting
-UpdateNodeNetworkSettingType
 UpdateNode
 UpdateNodeTag
 UpdatePCUProtocolType
@@ -194,8 +176,6 @@ UpdatePCUType
 UpdatePeer
 UpdatePerson
 UpdateSite
-UpdateSliceAttribute
-UpdateSliceAttributeType
 UpdateSlice
 UpdateSliceTag
 UpdateTagType
-- 
2.47.0