Add informations about tenant in the Moon Application. 83/1583/1
authorasteroide <thomas.duval@orange.com>
Tue, 15 Sep 2015 13:57:01 +0000 (15:57 +0200)
committerasteroide <thomas.duval@orange.com>
Tue, 15 Sep 2015 13:57:01 +0000 (15:57 +0200)
Change-Id: I8d8a5e2aaa58d5f7a1974b977b321ed01127189f

moonclient/moonclient/shell.py

index 7303fb7..60e8e41 100644 (file)
@@ -35,6 +35,8 @@ class MoonClient(App):
     port = "35357"
     tenant = None
     _intraextension = None
+    _tenant_id = None
+    _tenant_name = None
     post = {
         "auth": {
             "identity": {
@@ -74,19 +76,32 @@ class MoonClient(App):
         self.post["auth"]["scope"]["project"]["name"] = creds["tenant_name"]
         self.host = creds["auth_url"].replace("https://", "").replace("http://", "").split("/")[0].split(":")[0]
         self.port = creds["auth_url"].replace("https://", "").replace("http://", "").split("/")[0].split(":")[1]
-        self.tenant = creds["tenant_name"]
+        self._tenant_name = creds["tenant_name"]
+
+    @property
+    def tenant_id(self):
+        if not self._tenant_id:
+            self._tenant_id = self.get_url("/v3/projects?name={}".format(self._tenant_name),
+                                           authtoken=True)["projects"][0]["id"]
+        return self._tenant_id
+
+    @property
+    def tenant_name(self):
+        return self._tenant_name
 
     @property
     def intraextension(self):
         if not self._intraextension:
             self.log.debug("Setting intraextension")
-            project_id = self.get_url("/v3/projects?name={}".format(self.tenant), authtoken=True)["projects"][0]["id"]
+            project_id = self.get_url("/v3/projects?name={}".format(self._tenant_name),
+                                      authtoken=True)["projects"][0]["id"]
             self.log.debug("project_id={}".format(project_id))
             tenants = self.get_url("/v3/OS-MOON/tenants", authtoken=True)
             self.log.debug("tenants={}".format(tenants))
             if project_id not in tenants:
                 self.log.info("Tenant [{}] was not added in Moon".format(project_id))
                 return
+            self._tenant_id = project_id
             if tenants[project_id]['intra_authz_extension_id']:
                 self._intraextension = tenants[project_id]['intra_authz_extension_id']
             elif tenants[project_id]['intra_admin_extension_id']: