git://git.onelab.eu
/
sfa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
trimmed useless imports, unstarred all imports
[sfa.git]
/
sfa
/
util
/
api.py
diff --git
a/sfa/util/api.py
b/sfa/util/api.py
index
eeb3d6a
..
dca8f51
100644
(file)
--- a/
sfa/util/api.py
+++ b/
sfa/util/api.py
@@
-2,19
+2,18
@@
# SFA XML-RPC and SOAP interfaces
#
# SFA XML-RPC and SOAP interfaces
#
-import sys
-import os
-import traceback
import string
import xmlrpclib
import string
import xmlrpclib
-import sfa.util.xmlrpcprotocol as xmlrpcprotocol
+
+from sfa.util.faults import SfaNotImplemented, SfaAPIError, SfaInvalidAPIMethod, SfaFault
+from sfa.util.config import Config
from sfa.util.sfalogging import logger
from sfa.trust.auth import Auth
from sfa.util.sfalogging import logger
from sfa.trust.auth import Auth
-from sfa.util.config import *
-from sfa.util.faults import *
from sfa.util.cache import Cache
from sfa.util.cache import Cache
-from sfa.trust.credential import *
-from sfa.trust.certificate import *
+from sfa.trust.certificate import Keypair, Certificate
+
+# this is wrong all right, but temporary
+from sfa.managers.import_manager import import_manager
# See "2.2 Characters" in the XML specification:
#
# See "2.2 Characters" in the XML specification:
#
@@
-95,7
+94,7
@@
class ManagerWrapper:
"""
This class acts as a wrapper around an SFA interface manager module, but
can be used with any python module. The purpose of this class is raise a
"""
This class acts as a wrapper around an SFA interface manager module, but
can be used with any python module. The purpose of this class is raise a
- SfaNotImplemented exception if
the a someone attepm
ts to use an attribute
+ SfaNotImplemented exception if
someone attemp
ts to use an attribute
(could be a callable) thats not available in the library by checking the
library using hasattr. This helps to communicate better errors messages
to the users and developers in the event that a specifiec operation
(could be a callable) thats not available in the library by checking the
library using hasattr. This helps to communicate better errors messages
to the users and developers in the event that a specifiec operation
@@
-107,7
+106,6
@@
class ManagerWrapper:
self.interface = interface
def __getattr__(self, method):
self.interface = interface
def __getattr__(self, method):
-
if not hasattr(self.manager, method):
raise SfaNotImplemented(method, self.interface)
return getattr(self.manager, method)
if not hasattr(self.manager, method):
raise SfaNotImplemented(method, self.interface)
return getattr(self.manager, method)
@@
-160,22
+158,18
@@
class BaseAPI:
Returns the appropriate manager module for this interface.
Modules are usually found in sfa/managers/
"""
Returns the appropriate manager module for this interface.
Modules are usually found in sfa/managers/
"""
-
+ manager=None
if self.interface in ['registry']:
if self.interface in ['registry']:
- mgr_type = self.config.SFA_REGISTRY_TYPE
- manager_module = manager_base + ".registry_manager_%s" % mgr_type
+ manager=import_manager ("registry", self.config.SFA_REGISTRY_TYPE)
elif self.interface in ['aggregate']:
elif self.interface in ['aggregate']:
- mgr_type = self.config.SFA_AGGREGATE_TYPE
- manager_module = manager_base + ".aggregate_manager_%s" % mgr_type
+ manager=import_manager ("aggregate", self.config.SFA_AGGREGATE_TYPE)
elif self.interface in ['slicemgr', 'sm']:
elif self.interface in ['slicemgr', 'sm']:
- mgr_type = self.config.SFA_SM_TYPE
- manager_module = manager_base + ".slice_manager_%s" % mgr_type
+ manager=import_manager ("slice", self.config.SFA_SM_TYPE)
elif self.interface in ['component', 'cm']:
elif self.interface in ['component', 'cm']:
- mgr_type = self.config.SFA_CM_TYPE
- manager_module = manager_base + ".component_manager_%s" % mgr_type
- else:
+ manager=import_manager ("component", self.config.SFA_CM_TYPE)
+ if not manager:
raise SfaAPIError("No manager for interface: %s" % self.interface)
raise SfaAPIError("No manager for interface: %s" % self.interface)
- manager = __import__(manager_module, fromlist=[manager_base])
+
# this isnt necessary but will help to produce better error messages
# if someone tries to access an operation this manager doesn't implement
manager = ManagerWrapper(manager, self.interface)
# this isnt necessary but will help to produce better error messages
# if someone tries to access an operation this manager doesn't implement
manager = ManagerWrapper(manager, self.interface)