From ea7088921218c2837475decd5df7d1ca4a394fa8 Mon Sep 17 00:00:00 2001 From: Tony Mack <tmack@paris.CS.Princeton.EDU> Date: Fri, 12 Oct 2012 16:18:59 -0400 Subject: [PATCH] fix bugs --- PLC/Methods/AddRoleToTagType.py | 2 +- PLC/Methods/DeleteRoleFromPerson.py | 2 +- PLC/Methods/DeleteSite.py | 3 ++- PLC/Methods/GetNodeFlavour.py | 2 ++ PLC/Methods/GetSites.py | 6 ++++-- PLC/Sites.py | 6 ++++-- plcsh | 2 +- 7 files changed, 15 insertions(+), 8 deletions(-) diff --git a/PLC/Methods/AddRoleToTagType.py b/PLC/Methods/AddRoleToTagType.py index 947adcdf..c2067559 100644 --- a/PLC/Methods/AddRoleToTagType.py +++ b/PLC/Methods/AddRoleToTagType.py @@ -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']), diff --git a/PLC/Methods/DeleteRoleFromPerson.py b/PLC/Methods/DeleteRoleFromPerson.py index 4deacf60..9a22f256 100644 --- a/PLC/Methods/DeleteRoleFromPerson.py +++ b/PLC/Methods/DeleteRoleFromPerson.py @@ -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']), diff --git a/PLC/Methods/DeleteSite.py b/PLC/Methods/DeleteSite.py index f33aca51..d5d51235 100644 --- a/PLC/Methods/DeleteSite.py +++ b/PLC/Methods/DeleteSite.py @@ -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') diff --git a/PLC/Methods/GetNodeFlavour.py b/PLC/Methods/GetNodeFlavour.py index 9800f41f..92c0fc4b 100644 --- a/PLC/Methods/GetNodeFlavour.py +++ b/PLC/Methods/GetNodeFlavour.py @@ -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 diff --git a/PLC/Methods/GetSites.py b/PLC/Methods/GetSites.py index a6bfff7e..138c46e9 100644 --- a/PLC/Methods/GetSites.py +++ b/PLC/Methods/GetSites.py @@ -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) ] diff --git a/PLC/Sites.py b/PLC/Sites.py index c66d38f3..07cd634b 100644 --- a/PLC/Sites.py +++ b/PLC/Sites.py @@ -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 d8ab48f9..2bd46600 100755 --- 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") -- 2.47.0