diff options
author | Cosmin Munteanu <cmunteanu@cloudbasesolutions.com> | 2017-04-25 20:31:05 +0300 |
---|---|---|
committer | Cosmin Munteanu <cmunteanu@cloudbasesolutions.com> | 2017-04-25 20:31:05 +0300 |
commit | fe4880ae68e153ddffaee73fe73f08e629847a8c (patch) | |
tree | 694feb659b1c16751c465873666d93602461deeb | |
parent | e4492a23041aeb27f2031b9ce418a9205e9d8ea1 (diff) |
Added Openstack project id
-rw-r--r-- | wsgate/nova_token_auth.cpp | 14 | ||||
-rw-r--r-- | wsgate/nova_token_auth.hpp | 1 | ||||
-rw-r--r-- | wsgate/wsgate.ini.sample.in | 1 | ||||
-rw-r--r-- | wsgate/wsgateEHS.cpp | 7 | ||||
-rw-r--r-- | wsgate/wsgateEHS.hpp | 1 |
5 files changed, 23 insertions, 1 deletions
diff --git a/wsgate/nova_token_auth.cpp b/wsgate/nova_token_auth.cpp index 7c5cd06..3974ec6 100644 --- a/wsgate/nova_token_auth.cpp +++ b/wsgate/nova_token_auth.cpp @@ -47,6 +47,7 @@ private: std::string osUserName, std::string osPassword, std::string osTenantName, + std::string osProjectID, std::string osRegion); web::json::value get_console_token_data(std::string authToken, @@ -58,6 +59,7 @@ public: std::string osUserName, std::string osPassword, std::string osTenantName, + std::string osProjectID, std::string consoleToken, std::string keystoneVersion, std::string osRegion); @@ -141,6 +143,7 @@ std::pair<std::string, std::string> nova_console_token_auth_impl::get_auth_token std::pair<std::string, std::string> nova_console_token_auth_impl::get_auth_token_data_v3( string osAuthUrl, string osUserName, string osPassword, string osTenantName, + string osProjectID, string osRegion) { auto jsonRequestBody = json::value::object(); @@ -164,7 +167,14 @@ std::pair<std::string, std::string> nova_console_token_auth_impl::get_auth_token auto scope = json::value::object(); auto project = json::value::object(); - project[U("name")] = json::value::string(to_string_t(osTenantName)); + if (!osTenantName.empty()) + { + project[U("name")] = json::value::string(to_string_t(osTenantName)); + } + if (!osProjectID.empty()) + { + project[U("id")] = json::value::string(to_string_t(osProjectID)); + } project[U("domain")] = domain; scope[U("project")] = project; @@ -221,6 +231,7 @@ json::value nova_console_token_auth_impl::get_console_token_data( nova_console_info nova_console_token_auth_impl::get_console_info( std::string osAuthUrl, std::string osUserName, std::string osPassword, std::string osTenantName, + std::string osProjectID, std::string consoleToken, std::string keystoneVersion, std::string osRegion) { @@ -239,6 +250,7 @@ nova_console_info nova_console_token_auth_impl::get_console_info( osUserName, osPassword, osTenantName, + osProjectID, osRegion); } else{ diff --git a/wsgate/nova_token_auth.hpp b/wsgate/nova_token_auth.hpp index d8f4332..5238b01 100644 --- a/wsgate/nova_token_auth.hpp +++ b/wsgate/nova_token_auth.hpp @@ -69,6 +69,7 @@ namespace wsgate { std::string osUserName, std::string osPassword, std::string osTenantName, + std::string osProjectID, std::string consoleToken, std::string keystoneVersion, std::string osRegion) = 0; diff --git a/wsgate/wsgate.ini.sample.in b/wsgate/wsgate.ini.sample.in index c4a9c93..bc7833c 100644 --- a/wsgate/wsgate.ini.sample.in +++ b/wsgate/wsgate.ini.sample.in @@ -156,6 +156,7 @@ nofullwindowdrag = true #username = admin #password = secret #tenantname = admin +#projectid = openstack project id #region = optional region [hyperv] diff --git a/wsgate/wsgateEHS.cpp b/wsgate/wsgateEHS.cpp index bd75806..1b77eaa 100644 --- a/wsgate/wsgateEHS.cpp +++ b/wsgate/wsgateEHS.cpp @@ -287,6 +287,7 @@ namespace wsgate{ nova_console_info info = token_auth->get_console_info(m_sOpenStackAuthUrl, m_sOpenStackUsername, m_sOpenStackPassword, m_sOpenStackTenantName, + m_sOpenStackProjectId, tokenId, m_sOpenStackKeystoneVersion, m_sOpenStackRegion); log::info << "Host: " << info.host << " Port: " << info.port @@ -919,6 +920,12 @@ namespace wsgate{ } else { m_sOpenStackTenantName.clear(); } + if (pt.get_optional<std::string>("openstack.projectid")) { + m_sOpenStackProjectId.assign(pt.get<std::string>("openstack.projectid")); + } + else { + m_sOpenStackProjectId.clear(); + } if (pt.get_optional<std::string>("openstack.keystoneversion")) { m_sOpenStackKeystoneVersion.assign(pt.get<std::string>("openstack.keystoneversion")); } diff --git a/wsgate/wsgateEHS.hpp b/wsgate/wsgateEHS.hpp index 27499e5..cc3cae3 100644 --- a/wsgate/wsgateEHS.hpp +++ b/wsgate/wsgateEHS.hpp @@ -115,6 +115,7 @@ namespace wsgate{ string m_sOpenStackUsername; string m_sOpenStackPassword; string m_sOpenStackTenantName; + string m_sOpenStackProjectId; string m_sOpenStackKeystoneVersion; string m_sOpenStackRegion; string m_sHyperVHostUsername; |