more accessors, and site-local might work now
authorThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Fri, 22 Aug 2008 18:23:00 +0000 (18:23 +0000)
committerThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Fri, 22 Aug 2008 18:23:00 +0000 (18:23 +0000)
PLC/Accessors/Accessors_site.py [moved from PLC/Accessors/Accessors_site.py.in with 85% similarity]
PLC/Accessors/Accessors_standard.py
PLC/Accessors/Accessors_wireless.py [new file with mode: 0644]
PLC/Accessors/Factory.py
PLC/Accessors/__init__.py
PLCAPI.spec

similarity index 85%
rename from PLC/Accessors/Accessors_site.py.in
rename to PLC/Accessors/Accessors_site.py
index 6e18919..47dcf0e 100644 (file)
@@ -1,11 +1,11 @@
 # Thierry Parmentelat - INRIA
 # $Id$
 #
-# 
 # Shortcuts_site.py is the place where you can define your own tag accessors
+# this will not be overwritten through rpm upgrades in a myplc-devel packaging
 #
 # methods denotes the set of methods (names) that get inserted into the API
-#
+# it is updated by define_accessors
 
 methods=[]
 
index 7ada957..1cfc15f 100644 (file)
@@ -6,14 +6,23 @@ from PLC.Interfaces import Interface
 from PLC.Slices import Slice
 from PLC.Ilinks import Ilink
 
-from PLC.Accessors.Factory import define_accessors, all_roles
+from PLC.Accessors.Factory import define_accessors, all_roles, tech_roles
 
 import sys
 current_module = sys.modules[__name__]
 
-# example : node architecture 
+# node architecture 
 define_accessors(current_module, Node, "Arch", 'arch',  'node/config', 'architecture name', 
-                 tag_min_role_id=40,
-                 get_roles=all_roles,
-                 set_roles=['admin', 'pi', 'tech'] )
+                 get_roles=all_roles, set_roles=tech_roles )
 
+# node deployment (alpha, beta, ...)
+define_accessors(current_module, Node, "Deployment", "deployment", "node/config", "deployment flavour",
+                 get_roles=all_roles, set_roles=['admin'])
+
+# interface alias
+define_accessors(current_module, Interface, "Ifname", "ifname", "interface/config", "linux name",
+                 get_roles=all_roles, set_roles=tech_roles)
+define_accessors(current_module, Interface, "Driver", "driver", "interface/config", "driver name",
+                 get_roles=all_roles, set_roles=tech_roles)
+define_accessors(current_module, Interface, "Alias", "alias", "interface/config", "interface alias",
+                 get_roles=all_roles, set_roles=tech_roles)
diff --git a/PLC/Accessors/Accessors_wireless.py b/PLC/Accessors/Accessors_wireless.py
new file mode 100644 (file)
index 0000000..652e830
--- /dev/null
@@ -0,0 +1,49 @@
+# Thierry Parmentelat - INRIA
+# $Id: Accessors_standard.py 10295 2008-08-19 21:49:06Z thierry $
+
+from PLC.Nodes import Node
+from PLC.Interfaces import Interface
+from PLC.Slices import Slice
+from PLC.Ilinks import Ilink
+
+from PLC.Accessors.Factory import define_accessors, all_roles
+
+import sys
+current_module = sys.modules[__name__]
+
+#### Wireless
+
+define_accessors(current_module, Interface, "Mode", "wireless_mode", "interface/wireless", "wireless operation mode",
+                 get_roles=all_roles, set_roles=tech_roles)
+
+#["essid", "nw", "freq", "channel", "sens", "rate", "key", "key1", "key2", "key3", "key4", "securitymode", "iwconfig", "iwpriv" ]
+#
+#define_accessors(current_module, Interface, "Xxx", "Xxx", "interface/wireless", "XXX",
+#                 get_roles=all_roles, set_roles=tech_roles)
+#define_accessors(current_module, Interface, "Xxx", "Xxx", "interface/wireless", "XXX",
+#                 get_roles=all_roles, set_roles=tech_roles)
+#define_accessors(current_module, Interface, "Xxx", "Xxx", "interface/wireless", "XXX",
+#                 get_roles=all_roles, set_roles=tech_roles)
+#define_accessors(current_module, Interface, "Xxx", "Xxx", "interface/wireless", "XXX",
+#                 get_roles=all_roles, set_roles=tech_roles)
+#define_accessors(current_module, Interface, "Xxx", "Xxx", "interface/wireless", "XXX",
+#                 get_roles=all_roles, set_roles=tech_roles)
+#define_accessors(current_module, Interface, "Xxx", "Xxx", "interface/wireless", "XXX",
+#                 get_roles=all_roles, set_roles=tech_roles)
+#define_accessors(current_module, Interface, "Xxx", "Xxx", "interface/wireless", "XXX",
+#                 get_roles=all_roles, set_roles=tech_roles)
+#define_accessors(current_module, Interface, "Xxx", "Xxx", "interface/wireless", "XXX",
+#                 get_roles=all_roles, set_roles=tech_roles)
+#define_accessors(current_module, Interface, "Xxx", "Xxx", "interface/wireless", "XXX",
+#                 get_roles=all_roles, set_roles=tech_roles)
+#define_accessors(current_module, Interface, "Xxx", "Xxx", "interface/wireless", "XXX",
+#                 get_roles=all_roles, set_roles=tech_roles)
+#define_accessors(current_module, Interface, "Xxx", "Xxx", "interface/wireless", "XXX",
+#                 get_roles=all_roles, set_roles=tech_roles)
+#define_accessors(current_module, Interface, "Xxx", "Xxx", "interface/wireless", "XXX",
+#                 get_roles=all_roles, set_roles=tech_roles)
+#define_accessors(current_module, Interface, "Xxx", "Xxx", "interface/wireless", "XXX",
+#                 get_roles=all_roles, set_roles=tech_roles)
+#define_accessors(current_module, Interface, "Xxx", "Xxx", "interface/wireless", "XXX",
+#                 get_roles=all_roles, set_roles=tech_roles)
+
index 5cee5b8..6b13e0a 100644 (file)
@@ -36,6 +36,7 @@ taggable_classes = { Node : {'table_class' : Nodes,
 
 # xxx probably defined someplace else
 all_roles = [ 'admin', 'pi', 'tech', 'user', 'node' ]
+tech_roles = [ 'admin', 'pi', 'tech' ]
 
 # generates 2 method classes:
 # Get<classname><methodsuffix> (auth, id_or_name) -> tagvalue or None
index 7cb5fa1..eea8004 100644 (file)
@@ -1,12 +1,7 @@
 # each module to define in "methods" the set of methods that it defines
 
-#__all__ = """
-#Accessors_standard
-#Accessors_site
-#""".split()
-
-# this trick to support for site-local stuff does not work as it would be required at build-time - need to find something else 
-# see also the specfile
 __all__ = """
 Accessors_standard
+Accessors_wireless
+Accessors_site
 """.split()
index 15bc967..ac5e6fd 100644 (file)
@@ -75,10 +75,6 @@ cat > $RPM_BUILD_ROOT/%{_sysconfdir}/php.d/xmlrpc.ini <<EOF
 extension=xmlrpc.so
 EOF
 
-%post
-# create local shortcuts if not present (mentioned in PLC/Shortcuts/__init__.py)
-[ -f %{_datadir}/plc_api/PLC/Accessors/Accessors_site.py ] || cp %{_datadir}/plc_api/PLC/Accessors/Accessors_site.py.in %{_datadir}/plc_api/PLC/Accessors/Accessors_site.py
-
 %clean
 rm -rf $RPM_BUILD_ROOT
 
@@ -91,6 +87,7 @@ rm -rf $RPM_BUILD_ROOT
 %{_bindir}/plcsh
 %{php_extension_dir}/xmlrpc.so
 %{_sysconfdir}/php.d/xmlrpc.ini
+%config (noreplace) %{_datadir}/plc_api/PLC/Accessors/Accessors_site.py
 
 %changelog
 * Wed May 14 2008 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - PLCAPI-4.2-8