#
# 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
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)
from PLC.Config import Config
from PLC.Faults import *
import PLC.Methods
+import PLC.Legacy
import PLC.Accessors
def import_deep(name):
# 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'
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
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])
--- /dev/null
+## 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()
AddNetworkMethod
AddNetworkType
AddNodeGroup
-AddNodeNetwork
-AddNodeNetworkSetting
-AddNodeNetworkSettingType
AddNode
AddNodeTag
AddNodeToPCU
AddSession
AddSiteAddress
AddSite
-AddSliceAttribute
-AddSliceAttributeType
AddSliceInstantiation
AddSlice
AddSliceTag
DeleteNetworkType
DeleteNodeFromPCU
DeleteNodeGroup
-DeleteNodeNetwork
-DeleteNodeNetworkSetting
-DeleteNodeNetworkSettingType
DeleteNode
DeleteNodeTag
DeleteNodeType
DeleteRole
DeleteSession
DeleteSite
-DeleteSliceAttribute
-DeleteSliceAttributeType
DeleteSliceFromNodes
DeleteSliceFromNodesWhitelist
DeleteSliceInstantiation
GetNetworkMethods
GetNetworkTypes
GetNodeGroups
-GetNodeNetworkSettings
-GetNodeNetworkSettingTypes
-GetNodeNetworks
GetNodes
GetNodeTags
GetNodeTypes
GetSession
GetSessions
GetSites
-GetSliceAttributes
-GetSliceAttributeTypes
GetSliceInstantiations
GetSliceKeys
GetSlices
UpdateKey
UpdateMessage
UpdateNodeGroup
-UpdateNodeNetwork
-UpdateNodeNetworkSetting
-UpdateNodeNetworkSettingType
UpdateNode
UpdateNodeTag
UpdatePCUProtocolType
UpdatePeer
UpdatePerson
UpdateSite
-UpdateSliceAttribute
-UpdateSliceAttributeType
UpdateSlice
UpdateSliceTag
UpdateTagType