Repository: stratos Updated Branches: refs/heads/master 2c7c6aeb4 -> 4991fa18a
Updating tomcat-single-signon sample and updating agent plugins Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/4991fa18 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/4991fa18 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/4991fa18 Branch: refs/heads/master Commit: 4991fa18a079f76169404090e7a33be70b2d5f11 Parents: 2c7c6ae Author: Imesh Gunaratne <[email protected]> Authored: Sun May 31 12:23:08 2015 +0100 Committer: Imesh Gunaratne <[email protected]> Committed: Sun May 31 12:23:08 2015 +0100 ---------------------------------------------------------------------- samples/cartridges/kubernetes/tomcat3.json | 1 + samples/cartridges/kubernetes/wso2-is.json | 3 +- .../packs/plugins/TomcatServerStarterPlugin.py | 14 +++--- .../plugins/TomcatWSO2ISMetadataPublisher.py | 53 ++++++++++++++------ .../packs/plugins/WSO2ISMetaDataHandler.py | 4 ++ 5 files changed, 52 insertions(+), 23 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/4991fa18/samples/cartridges/kubernetes/tomcat3.json ---------------------------------------------------------------------- diff --git a/samples/cartridges/kubernetes/tomcat3.json b/samples/cartridges/kubernetes/tomcat3.json index 09026f5..b5bf194 100755 --- a/samples/cartridges/kubernetes/tomcat3.json +++ b/samples/cartridges/kubernetes/tomcat3.json @@ -9,6 +9,7 @@ "multiTenant": "false", "portMapping": [ { + "name": "tomcat-http", "protocol": "http", "port": "8080", "proxyPort": "8280" http://git-wip-us.apache.org/repos/asf/stratos/blob/4991fa18/samples/cartridges/kubernetes/wso2-is.json ---------------------------------------------------------------------- diff --git a/samples/cartridges/kubernetes/wso2-is.json b/samples/cartridges/kubernetes/wso2-is.json index 8ddaf6c..67a1c98 100644 --- a/samples/cartridges/kubernetes/wso2-is.json +++ b/samples/cartridges/kubernetes/wso2-is.json @@ -9,9 +9,10 @@ "multiTenant": "false", "portMapping": [ { + "name": "mgt-console", "protocol": "http", "port": "9443", - "proxyPort": "8280" + "proxyPort": "8443" } ], "iaasProvider": [ http://git-wip-us.apache.org/repos/asf/stratos/blob/4991fa18/tools/docker-images/cartridge-docker-images/service-images/tomcat-saml-sso/packs/plugins/TomcatServerStarterPlugin.py ---------------------------------------------------------------------- diff --git a/tools/docker-images/cartridge-docker-images/service-images/tomcat-saml-sso/packs/plugins/TomcatServerStarterPlugin.py b/tools/docker-images/cartridge-docker-images/service-images/tomcat-saml-sso/packs/plugins/TomcatServerStarterPlugin.py index 8e0cfb8..3a8330e 100644 --- a/tools/docker-images/cartridge-docker-images/service-images/tomcat-saml-sso/packs/plugins/TomcatServerStarterPlugin.py +++ b/tools/docker-images/cartridge-docker-images/service-images/tomcat-saml-sso/packs/plugins/TomcatServerStarterPlugin.py @@ -45,14 +45,14 @@ class TomcatServerStarterPlugin(ICartridgeAgentPlugin): log.info("Starting Tomcat server: [command] %s, [STRATOS_SAML_ENDPOINT] %s" % (tomcat_start_command, saml_endpoint)) env_var = os.environ.copy() env_var["STRATOS_SAML_ENDPOINT"] = saml_endpoint - env_var["STRATOS_HOST_NAME"] = values["HOST_NAME"] - payload_ports = values["PORT_MAPPINGS"].split("|") - if values.get("LB_CLUSTER_ID") is not None: - port_no = payload_ports[2].split(":")[1] - else: - port_no = payload_ports[1].split(":")[1] - env_var["STRATOS_HOST_PORT"] = port_no + + #payload_ports = values["PORT_MAPPINGS"].split("|") + #if values.get("LB_CLUSTER_ID") is not None: + # port_no = payload_ports[2].split(":")[1] + #else: + # port_no = payload_ports[1].split(":")[1] + env_var["STRATOS_HOST_PORT"] = 4500 p = subprocess.Popen(tomcat_start_command, env=env_var, shell=True) output, errors = p.communicate() http://git-wip-us.apache.org/repos/asf/stratos/blob/4991fa18/tools/docker-images/cartridge-docker-images/service-images/tomcat-saml-sso/packs/plugins/TomcatWSO2ISMetadataPublisher.py ---------------------------------------------------------------------- diff --git a/tools/docker-images/cartridge-docker-images/service-images/tomcat-saml-sso/packs/plugins/TomcatWSO2ISMetadataPublisher.py b/tools/docker-images/cartridge-docker-images/service-images/tomcat-saml-sso/packs/plugins/TomcatWSO2ISMetadataPublisher.py index b8e5ec0..f363b19 100644 --- a/tools/docker-images/cartridge-docker-images/service-images/tomcat-saml-sso/packs/plugins/TomcatWSO2ISMetadataPublisher.py +++ b/tools/docker-images/cartridge-docker-images/service-images/tomcat-saml-sso/packs/plugins/TomcatWSO2ISMetadataPublisher.py @@ -20,31 +20,54 @@ from plugins.contracts import ICartridgeAgentPlugin import time import zipfile import subprocess +from modules.util.log import LogFactory class TomcatWSO2ISMetadataPublisher(ICartridgeAgentPlugin): def run_plugin(self, values): + log = LogFactory().get_log(__name__) + + log.info("Starting tomcat metadata publisher...") # publish callback and issuer id from tomcat for IS to pickup publish_data = mdsclient.MDSPutRequest() # hostname_entry = {"key": "TOMCAT_HOSTNAME", "values": member_hostname} cluster_hostname = values["HOST_NAME"] - # set port name checking if lb is present or not - payload_ports = values["PORT_MAPPINGS"].split("|") - if values.get("LB_CLUSTER_ID") is not None: - port_no = payload_ports[2].split(":")[1] - else: - port_no = payload_ports[1].split(":")[1] - - callback_url = "http://%s:%s/travelocity.com/home.jsp" % (cluster_hostname, port_no) - saml_callback_entry = {"key": "CALLBACK_URL", "values": callback_url} - issuer_entry = {"key": "SSO_ISSUER", "values": "travelocity.com"} - # properties_data = [hostname_entry, saml_callback_entry] - properties_data = [saml_callback_entry, issuer_entry] - publish_data.properties = properties_data - - mdsclient.put(publish_data, app=True) + log.info("Reading port mappings...") + port_mappings_str = values["PORT_MAPPINGS"] + + tomcat_http_port = None + + # port mappings format: """NAME:mgt-console|PROTOCOL:https|PORT:4500|PROXY_PORT:8443; + # NAME:tomcat-http|PROTOCOL:http|PORT:4501|PROXY_PORT:7280;""" + + log.info("Port mappings: %s" % port_mappings_str) + if port_mappings_str is not None: + + port_mappings_array = port_mappings_str.split(";") + if port_mappings_array: + + for port_mapping in port_mappings_array: + log.debug("port_mapping: %s" % port_mapping) + name_value_array = port_mapping.split("|") + name = name_value_array[0].split(":")[1] + protocol = name_value_array[1].split(":")[1] + port = name_value_array[2].split(":")[1] + if name == "tomcat-http" and protocol == "http": + tomcat_http_port = port + + callback_url = "http://%s:%s/travelocity.com/home.jsp" % (cluster_hostname, tomcat_http_port) + saml_callback_entry = {"key": "CALLBACK_URL", "values": [ callback_url ]} + issuer_entry = {"key": "SSO_ISSUER", "values": [ "travelocity.com" ]} + #properties_data = [saml_callback_entry, issuer_entry] + #publish_data.properties = properties_data + + mdsclient.put(saml_callback_entry, app=True) + mdsclient.put(issuer_entry, app=True) + + log.info("Published values to metadata API: CALLBACK_URL: %s, SSO_ISSUER: travelocity.com" % callback_url) + log.info("Tomcat metadata publisher completed") http://git-wip-us.apache.org/repos/asf/stratos/blob/4991fa18/tools/docker-images/cartridge-docker-images/service-images/wso2is-saml-sso/packs/plugins/WSO2ISMetaDataHandler.py ---------------------------------------------------------------------- diff --git a/tools/docker-images/cartridge-docker-images/service-images/wso2is-saml-sso/packs/plugins/WSO2ISMetaDataHandler.py b/tools/docker-images/cartridge-docker-images/service-images/wso2is-saml-sso/packs/plugins/WSO2ISMetaDataHandler.py index 1b7ea7a..0860328 100644 --- a/tools/docker-images/cartridge-docker-images/service-images/wso2is-saml-sso/packs/plugins/WSO2ISMetaDataHandler.py +++ b/tools/docker-images/cartridge-docker-images/service-images/wso2is-saml-sso/packs/plugins/WSO2ISMetaDataHandler.py @@ -29,6 +29,8 @@ class WSO2ISMetaDataHandler(ICartridgeAgentPlugin): def run_plugin(self, values): log = LogFactory().get_log(__name__) + log.info("Starting wso2is metadata handler...") + # read tomcat app related values from metadata mds_response = None while mds_response is None: @@ -166,3 +168,5 @@ class WSO2ISMetaDataHandler(ICartridgeAgentPlugin): p = subprocess.Popen(wso2is_start_command, env=env_var, shell=True) output, errors = p.communicate() log.debug("WSO2 IS server started") + + log.info("wso2is metadata handler completed")
