other minor tweaks - doc generation should still be broken
[plcapi.git] / PLC / Methods / __init__.py
index 6ebe48d..000edba 100644 (file)
-methods = """
-AddAddressType
-AddAddressTypeToAddress
-AddBootState
-AddConfFile
-AddConfFileToNode
-AddConfFileToNodeGroup
-AddIlink
-AddIlinkType
-AddInitScript
-AddInterface
-AddInterfaceSetting
-AddInterfaceSettingType
-AddKeyType
-AddMessage
-AddNetworkMethod
-AddNetworkType
-AddNode
-AddNodeGroup
-AddNodeTag
-AddNodeTagType
-AddNodeToPCU
-AddPCU
-AddPCUProtocolType
-AddPCUType
-AddPeer
-AddPerson
-AddPersonKey
-AddPersonToSite
-AddPersonToSlice
-AddRole
-AddRoleToPerson
-AddSession
-AddSite
-AddSiteAddress
-AddSlice
-AddSliceAttribute
-AddSliceAttributeType
-AddSliceInstantiation
-AddSliceToNodes
-AddSliceToNodesWhitelist
-AuthCheck
-BlacklistKey
-BootCheckAuthentication
-BootGetNodeDetails
-BootNotifyOwners
-BootUpdateNode
-DeleteAddress
-DeleteAddressType
-DeleteAddressTypeFromAddress
-DeleteBootState
-DeleteConfFile
-DeleteConfFileFromNode
-DeleteConfFileFromNodeGroup
-DeleteIlink
-DeleteIlinkType
-DeleteInitScript
-DeleteInterface
-DeleteInterfaceSetting
-DeleteInterfaceSettingType
-DeleteKey
-DeleteKeyType
-DeleteMessage
-DeleteNetworkMethod
-DeleteNetworkType
-DeleteNode
-DeleteNodeFromPCU
-DeleteNodeGroup
-DeleteNodeTag
-DeleteNodeTagType
-DeletePCU
-DeletePCUProtocolType
-DeletePCUType
-DeletePeer
-DeletePerson
-DeletePersonFromSite
-DeletePersonFromSlice
-DeleteRole
-DeleteRoleFromPerson
-DeleteSession
-DeleteSite
-DeleteSlice
-DeleteSliceAttribute
-DeleteSliceAttributeType
-DeleteSliceFromNodes
-DeleteSliceFromNodesWhitelist
-DeleteSliceInstantiation
-GenerateNodeConfFile
-GetAddressTypes
-GetAddresses
-GetBootMedium
-GetBootStates
-GetConfFiles
-GetEventObjects
-GetEvents
-GetIlinkTypes
-GetIlinks
-GetInitScripts
-GetInterfaceSettingTypes
-GetInterfaceSettings
-GetInterfaces
-GetKeyTypes
-GetKeys
-GetMessages
-GetNetworkMethods
-GetNetworkTypes
-GetNodeGroups
-GetNodeTagTypes
-GetNodeTags
-GetNodes
-GetPCUProtocolTypes
-GetPCUTypes
-GetPCUs
-GetPeerData
-GetPeerName
-GetPeers
-GetPersons
-GetPlcRelease
-GetRoles
-GetSession
-GetSessions
-GetSites
-GetSliceAttributeTypes
-GetSliceAttributes
-GetSliceInstantiations
-GetSliceKeys
-GetSliceTicket
-GetSlices
-GetSlicesMD5
-GetSlivers
-GetWhitelist
-NotifyPersons
-NotifySupport
-RebootNode
-RefreshPeer
-ResetPassword
-SetPersonPrimarySite
-SliceCreate
-SliceDelete
-SliceExtendedInfo
-SliceGetTicket
-SliceInfo
-SliceListNames
-SliceListUserSlices
-SliceNodesAdd
-SliceNodesDel
-SliceNodesList
-SliceRenew
-SliceTicketGet
-SliceUpdate
-SliceUserAdd
-SliceUserDel
-SliceUsersList
-UpdateAddress
-UpdateAddressType
-UpdateConfFile
-UpdateIlink
-UpdateIlinkType
-UpdateInitScript
-UpdateInterface
-UpdateInterfaceSetting
-UpdateInterfaceSettingType
-UpdateKey
-UpdateMessage
-UpdateNode
-UpdateNodeGroup
-UpdateNodeTag
-UpdateNodeTagType
-UpdatePCU
-UpdatePCUProtocolType
-UpdatePCUType
-UpdatePeer
-UpdatePerson
-UpdateSite
-UpdateSlice
-UpdateSliceAttribute
-UpdateSliceAttributeType
-VerifyPerson
-system.listMethods
-system.methodHelp
-system.methodSignature
-system.multicall
-""".split()
+#!/usr/bin/python -tt
+
+from __future__ import print_function
+
+import os
+import glob
+
+native_methods = []
+toppath = os.path.dirname(__file__)
+
+# do not blindly scan this directory, as when using devel tools
+# like `make sync` we can easily end up with more files that needed
+# which breaks in production
+
+contents = [
+    ('.', '[A-Z][a-zA-Z]*.py'),
+    ('system', '[a-zA-Z]*.py'),
+]
+
+for dir, pattern in contents:
+    prefix = len(dir) + 1
+    matches = glob.glob("{}/{}".format(dir, pattern))
+    for match in matches:
+        filename = match[prefix:][:-3]
+        python_name = filename if dir == '.' \
+            else "{}.{}".format(dir, filename)
+        native_methods.append(python_name)
+
+if __name__ == '__main__':
+    native_methods.sort()
+    print(native_methods)