fix bugs
authorTony Mack <tmack@paris.CS.Princeton.EDU>
Fri, 12 Oct 2012 20:18:59 +0000 (16:18 -0400)
committerTony Mack <tmack@paris.CS.Princeton.EDU>
Fri, 12 Oct 2012 20:18:59 +0000 (16:18 -0400)
PLC/Methods/AddRoleToTagType.py
PLC/Methods/DeleteRoleFromPerson.py
PLC/Methods/DeleteSite.py
PLC/Methods/GetNodeFlavour.py
PLC/Methods/GetSites.py
PLC/Sites.py
plcsh

index 947adcd..c206755 100644 (file)
@@ -19,7 +19,7 @@ class AddRoleToTagType(Method):
 
     accepts = [
         Auth(),
-        Mixed(Role.fields['role_id'],
+        Mixed(Role.fields['id'],
               Role.fields['name']),
         Mixed(TagType.fields['tag_type_id'],
               TagType.fields['tagname']),
index 4deacf6..9a22f25 100644 (file)
@@ -19,7 +19,7 @@ class DeleteRoleFromPerson(Method):
 
     accepts = [
         Auth(),
-        Mixed(Role.fields['role_id'],
+        Mixed(Role.fields['id'],
               Role.fields['name']),
         Mixed(Person.fields['person_id'],
               Person.fields['email']),
index f33aca5..d5d5123 100644 (file)
@@ -18,7 +18,8 @@ class DeleteSite(Method):
 
     accepts = [
         Auth(),
-        Site.fields['id']
+        Mixed(Site.fields['site_id'],
+              Site.fields['login_base'])
         ]
 
     returns = Parameter(int, '1 if successful')
index 9800f41..92c0fc4 100644 (file)
@@ -4,6 +4,8 @@ from PLC.Faults import *
 from PLC.Parameter import *
 from PLC.Nodes import Node, Nodes
 
+from PLC.Accessors.Accessors_standard import *                  # import node accessors
+
 class GetNodeFlavour(Method):
     """
     Returns detailed information on a given node's flavour, i.e. its
index a6bfff7..138c46e 100644 (file)
@@ -17,8 +17,10 @@ class GetSites(Method):
 
     accepts = [
         Auth(),
-        Mixed([Site.fields['id']],
-              Parameter(str,"id"),
+        Mixed([Mixed(Site.fields['site_id'],
+                     Site.fields['login_base'])],
+              Parameter(str,"login_base"),
+              Parameter(int,"site_id"),    
               Filter(Site.fields)),
         Parameter([str], "List of fields to return", nullok = True)
         ]
index c66d38f..07cd634 100644 (file)
@@ -158,8 +158,10 @@ class Sites(list):
         elif isinstance(site_filter, dict):
             sites = Site().select(filter=site_filter)
         elif isinstance(site_filter, (list, tuple, set)):
-            sites = Site().select() 
-            sites = [site for site in sites if site.id in site_filter]
+            ints = filter(lambda x: isinstance(x, (int, long)), site_filter)
+            strs = filter(lambda x: isinstance(x, StringTypes), site_filter)
+            site_filter = {'site_id': ints, 'login_base': strs}
+            sites = Site().select(filter=site_filter)
         else:
             raise PLCInvalidArgument, "Wrong site filter %s" % site_filter         
 
diff --git a/plcsh b/plcsh
index d8ab48f..2bd4660 100755 (executable)
--- a/plcsh
+++ b/plcsh
@@ -27,7 +27,7 @@ parser.add_option("-f", "--config", help = "PLC configuration file")
 parser.add_option("-h", "--url", help = "API URL")
 parser.add_option("-c", "--cacert", help = "API SSL certificate")
 parser.add_option("-k", "--insecure", help = "Do not check SSL certificate")
-parser.add_option("-m", "--method", help = "API authentication method")
+parser.add_option("-m", "--method", help = "API authentication method", default='capability')
 parser.add_option("-s", "--session", help = "API session key")
 parser.add_option("-u", "--user", help = "API user name")
 parser.add_option("-p", "--password", help = "API password")