X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fopenstack%2Feuca_shell.py;h=e2bdf7f86d7c010fab5e961e199ff50b778a8839;hb=23172150ccd0a5be308b236ee44d2dcc2c409565;hp=3dbe9a8f74b24223a915e1d7ef1c39d73be3749b;hpb=8f74a4972caa1a488839b3f2990f8a8b863fb987;p=sfa.git diff --git a/sfa/openstack/euca_shell.py b/sfa/openstack/euca_shell.py index 3dbe9a8f..e2bdf7f8 100644 --- a/sfa/openstack/euca_shell.py +++ b/sfa/openstack/euca_shell.py @@ -21,27 +21,28 @@ class EucaShell: self.access_key = None self.secret_key = None - def _init_ctx(self, username=None, project=None): - if username and project: - self.access_key = "%s:%s" % (username, project) - self.secret_key = self.nova_shell.auth_manager.get_user(username).secret + def init_context(self, project_name=None): + + # use the context of the specified project's project + # manager. + if project_name: + project = self.nova_shell.auth_manager.get_project(project_name) + self.access_key = "%s:%s" % (project.project_manager.name, project_name) + self.secret_key = project.project_manager.secret else: + # use admin user's context admin_user = self.nova_shell.auth_manager.get_user(self.config.SFA_NOVA_USER) #access_key = admin_user.access self.access_key = '%s' % admin_user.name self.secret_key = admin_user.secret - - - def get_euca_connection(self, username=None, project=None): + def get_euca_connection(self, project_name=None): if not has_boto: logger.info('Unable to access EC2 API - boto library not found.') return None - if username and project: - self._init_ctx(username, project) - elif not self.access_key or not self.secret_key: - self._init_ctx() + if not self.access_key or not self.secret_key: + self.init_context(project_name) url = self.config.SFA_NOVA_API_URL host = None