X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fplc%2Fapi.py;h=4ce2f9e8bd234c713ff3b0a304b4a63090f4e7b8;hb=57b6a99255d4a88be9c0f910f8524677e34ff4bc;hp=cad226719eacfc4fa5cac8f5f9f25528692896f1;hpb=1e51441243c7927f56f192febb331f9a30924fdc;p=sfa.git diff --git a/sfa/plc/api.py b/sfa/plc/api.py index cad22671..4ce2f9e8 100644 --- a/sfa/plc/api.py +++ b/sfa/plc/api.py @@ -2,25 +2,26 @@ # SFA XML-RPC and SOAP interfaces # -import sys import os -import traceback -import string +import tempfile import datetime import xmlrpclib -from sfa.util.faults import * -from sfa.util.api import * -from sfa.util.config import * +from sfa.util.faults import RecordNotFound, MissingSfaInfo +from sfa.util.api import BaseAPI +from sfa.util.config import Config from sfa.util.sfalogging import logger import sfa.util.xmlrpcprotocol as xmlrpcprotocol -from sfa.trust.auth import Auth -from sfa.trust.rights import Right, Rights, determine_rights -from sfa.trust.credential import Credential,Keypair -from sfa.trust.certificate import Certificate -from sfa.util.xrn import get_authority, hrn_to_urn -from sfa.util.plxrn import hostname_to_hrn, hrn_to_pl_slicename, hrn_to_pl_slicename, slicename_to_hrn +from sfa.util.xrn import hrn_to_urn +from sfa.util.plxrn import hostname_to_hrn, hrn_to_pl_slicename, \ + hrn_to_pl_slicename, slicename_to_hrn, hrn_to_pl_login_base from sfa.util.nodemanager import NodeManager + +from sfa.trust.auth import Auth +from sfa.trust.rights import determine_rights +from sfa.trust.credential import Credential +from sfa.trust.certificate import Certificate, Keypair +from sfa.trust.gid import GID try: from collections import defaultdict except: @@ -576,12 +577,22 @@ class SfaAPI(BaseAPI): self.fill_record_sfa_info(records) def update_membership_list(self, oldRecord, record, listName, addFunc, delFunc): - # get a list of the HRNs tht are members of the old and new records + # get a list of the HRNs that are members of the old and new records if oldRecord: oldList = oldRecord.get(listName, []) else: oldList = [] newList = record.get(listName, []) + # ugly hack to see what's next + def normalize (value): + from types import StringTypes + from sfa.util.sfalogging import logger + if isinstance(value,StringTypes): return value + elif isinstance(value,dict): + newvalue=value['text'] + logger.info("Normalizing %s=>%s"%(value,newvalue)) + return newvalue + newList=[normalize(v) for v in newList] # if the lists are the same, then we don't have to update anything if (oldList == newList): @@ -643,6 +654,7 @@ class ComponentAPI(BaseAPI): def sliver_exists(self): sliver_dict = self.nodemanager.GetXIDs() + ### xxx slicename is undefined if slicename in sliver_dict.keys(): return True else: @@ -696,6 +708,7 @@ class ComponentAPI(BaseAPI): cert_str = Certificate(filename=cert_filename).save_to_string(save_parents=True) registry = self.get_registry() cred = registry.GetSelfCredential(cert_str, hrn, 'node') + # xxx credfile is undefined Credential(string=cred).save_to_file(credfile, save_parents=True) return cred @@ -706,6 +719,7 @@ class ComponentAPI(BaseAPI): """ files = ["server.key", "server.cert", "node.cred"] for f in files: + # xxx KEYDIR is undefined, could be meant to be "/var/lib/sfa/" from sfa_component_setup.py filepath = KEYDIR + os.sep + f if os.path.isfile(filepath): os.unlink(f)