Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FreeRDP/FreeRDP-WebConnect.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCosmin Munteanu <cmunteanu@cloudbasesolutions.com>2017-04-25 20:31:05 +0300
committerCosmin Munteanu <cmunteanu@cloudbasesolutions.com>2017-04-25 20:31:05 +0300
commitfe4880ae68e153ddffaee73fe73f08e629847a8c (patch)
tree694feb659b1c16751c465873666d93602461deeb
parente4492a23041aeb27f2031b9ce418a9205e9d8ea1 (diff)
Added Openstack project id
-rw-r--r--wsgate/nova_token_auth.cpp14
-rw-r--r--wsgate/nova_token_auth.hpp1
-rw-r--r--wsgate/wsgate.ini.sample.in1
-rw-r--r--wsgate/wsgateEHS.cpp7
-rw-r--r--wsgate/wsgateEHS.hpp1
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;