git://git.onelab.eu
/
plcapi.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
7f0a417
)
Rationalize: can now update aggregate values (persons, addresses)
author
Tony Mack
<tmack@cs.princeton.edu>
Tue, 6 Nov 2007 03:48:50 +0000
(
03:48
+0000)
committer
Tony Mack
<tmack@cs.princeton.edu>
Tue, 6 Nov 2007 03:48:50 +0000
(
03:48
+0000)
PLC/Methods/UpdateSite.py
patch
|
blob
|
history
diff --git
a/PLC/Methods/UpdateSite.py
b/PLC/Methods/UpdateSite.py
index
03b1e13
..
6a33c5e
100644
(file)
--- a/
PLC/Methods/UpdateSite.py
+++ b/
PLC/Methods/UpdateSite.py
@@
-4,10
+4,12
@@
from PLC.Parameter import Parameter, Mixed
from PLC.Sites import Site, Sites
from PLC.Auth import Auth
from PLC.Sites import Site, Sites
from PLC.Auth import Auth
+related_fields = Site.related_fields.keys()
can_update = lambda (field, value): field in \
['name', 'abbreviated_name', 'login_base',
'is_public', 'latitude', 'longitude', 'url',
can_update = lambda (field, value): field in \
['name', 'abbreviated_name', 'login_base',
'is_public', 'latitude', 'longitude', 'url',
- 'max_slices', 'max_slivers', 'enabled', 'ext_consortium_id']
+ 'max_slices', 'max_slivers', 'enabled', 'ext_consortium_id'] + \
+ related_fields
class UpdateSite(Method):
"""
class UpdateSite(Method):
"""
@@
-22,7
+24,7
@@
class UpdateSite(Method):
roles = ['admin', 'pi']
roles = ['admin', 'pi']
- site_fields = dict(filter(can_update, Site.fields.items()))
+ site_fields = dict(filter(can_update, Site.fields.items()
+ Site.related_fields.items()
))
accepts = [
Auth(),
accepts = [
Auth(),
@@
-59,6
+61,12
@@
class UpdateSite(Method):
if key in site_fields:
del site_fields[key]
if key in site_fields:
del site_fields[key]
+ # Make requested associations
+ for field in related_fields:
+ if field in site_fields:
+ site.associate(auth, field, site_fields[field])
+ site_fields.pop(field)
+
site.update(site_fields)
site.update_last_updated(False)
site.sync()
site.update(site_fields)
site.update_last_updated(False)
site.sync()