From c5d1b7ea9ff12411ef0d34f29efa7f5684c476cf Mon Sep 17 00:00:00 2001 From: Thierry Parmentelat Date: Fri, 22 Aug 2008 18:23:00 +0000 Subject: [PATCH] more accessors, and site-local might work now --- ...Accessors_site.py.in => Accessors_site.py} | 4 +- PLC/Accessors/Accessors_standard.py | 19 +++++-- PLC/Accessors/Accessors_wireless.py | 49 +++++++++++++++++++ PLC/Accessors/Factory.py | 1 + PLC/Accessors/__init__.py | 9 +--- PLCAPI.spec | 5 +- 6 files changed, 69 insertions(+), 18 deletions(-) rename PLC/Accessors/{Accessors_site.py.in => Accessors_site.py} (85%) create mode 100644 PLC/Accessors/Accessors_wireless.py diff --git a/PLC/Accessors/Accessors_site.py.in b/PLC/Accessors/Accessors_site.py similarity index 85% rename from PLC/Accessors/Accessors_site.py.in rename to PLC/Accessors/Accessors_site.py index 6e18919..47dcf0e 100644 --- a/PLC/Accessors/Accessors_site.py.in +++ b/PLC/Accessors/Accessors_site.py @@ -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=[] diff --git a/PLC/Accessors/Accessors_standard.py b/PLC/Accessors/Accessors_standard.py index 7ada957..1cfc15f 100644 --- a/PLC/Accessors/Accessors_standard.py +++ b/PLC/Accessors/Accessors_standard.py @@ -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 index 0000000..652e830 --- /dev/null +++ b/PLC/Accessors/Accessors_wireless.py @@ -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) + diff --git a/PLC/Accessors/Factory.py b/PLC/Accessors/Factory.py index 5cee5b8..6b13e0a 100644 --- a/PLC/Accessors/Factory.py +++ b/PLC/Accessors/Factory.py @@ -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 (auth, id_or_name) -> tagvalue or None diff --git a/PLC/Accessors/__init__.py b/PLC/Accessors/__init__.py index 7cb5fa1..eea8004 100644 --- a/PLC/Accessors/__init__.py +++ b/PLC/Accessors/__init__.py @@ -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() diff --git a/PLCAPI.spec b/PLCAPI.spec index 15bc967..ac5e6fd 100644 --- a/PLCAPI.spec +++ b/PLCAPI.spec @@ -75,10 +75,6 @@ cat > $RPM_BUILD_ROOT/%{_sysconfdir}/php.d/xmlrpc.ini < - PLCAPI-4.2-8 -- 2.43.0