You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by re...@apache.org on 2015/09/03 08:53:39 UTC
stratos git commit: fixing port mapping issue for kubernetes
Repository: stratos
Updated Branches:
refs/heads/stratos-4.1.x 8a4d372be -> ce2a71b15
fixing port mapping issue for kubernetes
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/ce2a71b1
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/ce2a71b1
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/ce2a71b1
Branch: refs/heads/stratos-4.1.x
Commit: ce2a71b153725bc05f006e9827f56861ee6c51b3
Parents: 8a4d372
Author: reka <rt...@gmail.com>
Authored: Thu Sep 3 12:21:09 2015 +0530
Committer: reka <rt...@gmail.com>
Committed: Thu Sep 3 12:23:29 2015 +0530
----------------------------------------------------------------------
.../nginx/extension/NginxConfigWriter.java | 80 +++++++++++---------
1 file changed, 43 insertions(+), 37 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/ce2a71b1/extensions/load-balancer/modules/nginx-extension/src/main/java/org/apache/stratos/nginx/extension/NginxConfigWriter.java
----------------------------------------------------------------------
diff --git a/extensions/load-balancer/modules/nginx-extension/src/main/java/org/apache/stratos/nginx/extension/NginxConfigWriter.java b/extensions/load-balancer/modules/nginx-extension/src/main/java/org/apache/stratos/nginx/extension/NginxConfigWriter.java
index 6efc474..d1c5cf1 100644
--- a/extensions/load-balancer/modules/nginx-extension/src/main/java/org/apache/stratos/nginx/extension/NginxConfigWriter.java
+++ b/extensions/load-balancer/modules/nginx-extension/src/main/java/org/apache/stratos/nginx/extension/NginxConfigWriter.java
@@ -32,7 +32,6 @@ import java.io.FileWriter;
import java.io.IOException;
import java.io.StringWriter;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.List;
/**
@@ -62,26 +61,31 @@ public class NginxConfigWriter {
StringBuilder configurationBuilder = new StringBuilder();
- List<String> availableProtocols = new ArrayList<>();
+ List<Port> availablePorts = new ArrayList<Port>();
for (Service service : topology.getServices()) {
for (Cluster cluster : service.getClusters()) {
if ((service.getPorts() == null) || (service.getPorts().size() == 0)) {
throw new RuntimeException(String.format("No ports found in service: %s", service.getServiceName()));
}
- for(Port port : service.getPorts()) {
- if(!availableProtocols.contains(port.getProtocol())) {
- availableProtocols.add(port.getProtocol());
+ for (Port port : service.getPorts()) {
+ for(Port availablePort : availablePorts) {
+ if ((!availablePort.getProtocol().equals(port.getProtocol())) ||
+ (availablePort.getProtocol().equals(port.getProtocol()) &&
+ availablePort.getProxy() != port.getProxy())) {
+ availablePorts.add(port);
+ }
}
}
}
}
- for(String protocol1 : availableProtocols) {
- if(log.isDebugEnabled()) {
- log.debug("Available protocols : " + protocol1 + "\n");
+ for (Port port1 : availablePorts) {
+ if (log.isDebugEnabled()) {
+ log.debug("Available protocols : " + port1.getProtocol() + " proxy val: " +
+ port1.getProxy() + "\n");
}
}
- for(String protocol : availableProtocols) {
+ for (Port availPort : availablePorts) {
// Start transport block
configurationBuilder.append("http").append(" {").append(NEW_LINE);
configurationBuilder.append(TAB).append("server_names_hash_bucket_size ").
@@ -94,14 +98,15 @@ public class NginxConfigWriter {
service.getServiceName()));
}
Port selectedPort = null;
- for(Port port : service.getPorts()) {
- if(port.getProtocol().equals(protocol)) {
+ for (Port port : service.getPorts()) {
+ if ((port.getProtocol().equals(availPort.getProtocol())) &&
+ (port.getProxy() == availPort.getProxy())) {
selectedPort = port;
}
}
- if(selectedPort != null) {
- if(log.isDebugEnabled()) {
+ if (selectedPort != null) {
+ if (log.isDebugEnabled()) {
log.debug("The selected Port for cluster: " + cluster.getClusterId()
+ " is " + selectedPort.getValue() + " " +
selectedPort.getProtocol() + " " + selectedPort.getProxy());
@@ -111,7 +116,7 @@ public class NginxConfigWriter {
}
}
configurationBuilder.append("}").append(NEW_LINE);
- if(log.isDebugEnabled()) {
+ if (log.isDebugEnabled()) {
log.debug("The generated niginx.conf is: \n" + configurationBuilder.toString());
}
// End transport block
@@ -155,26 +160,27 @@ public class NginxConfigWriter {
/**
* Generate configuration for a cluster with the following format:
- *
+ * <p/>
* <transport> {
- * upstream <cluster-hostname> {
- * server <hostname>:<port>;
- * server <hostname>:<port>;
- * }
- * server {
- * listen <proxy-port>;
- * server_name <cluster-hostname>;
- * location / {
- * proxy_pass http://<cluster-hostname>
- * }
- * location /nginx_status {
- * stub_status on;
- * access_log off;
- * allow 127.0.0.1;
- * deny all;
- * }
- * }
+ * upstream <cluster-hostname> {
+ * server <hostname>:<port>;
+ * server <hostname>:<port>;
+ * }
+ * server {
+ * listen <proxy-port>;
+ * server_name <cluster-hostname>;
+ * location / {
+ * proxy_pass http://<cluster-hostname>
+ * }
+ * location /nginx_status {
+ * stub_status on;
+ * access_log off;
+ * allow 127.0.0.1;
+ * deny all;
* }
+ * }
+ * }
+ *
* @param cluster
* @param port
* @param text
@@ -196,7 +202,7 @@ public class NginxConfigWriter {
// Start server block
text.append(NEW_LINE);
text.append(TAB).append("server {").append(NEW_LINE);
- if(port.getProtocol().equals("https")) {
+ if (port.getProtocol().equals("https")) {
text.append(TAB).append(TAB).append("listen ").append(port.getProxy()).append(" ssl;").append(NEW_LINE);
} else {
text.append(TAB).append(TAB).append("listen ").append(port.getProxy()).append(";").append(NEW_LINE);
@@ -204,7 +210,7 @@ public class NginxConfigWriter {
text.append(TAB).append(TAB).append("server_name ").append(hostname).append(";").append(NEW_LINE);
text.append(TAB).append(TAB).append("location / {").append(NEW_LINE);
- if(port.getProtocol().equals("https")) {
+ if (port.getProtocol().equals("https")) {
text.append(TAB).append(TAB).append(TAB).append("proxy_pass").append(TAB)
.append("https://").append(hostname).append(";").append(NEW_LINE);
} else {
@@ -220,10 +226,10 @@ public class NginxConfigWriter {
text.append(TAB).append(TAB).append(TAB).append("deny all;").append(NEW_LINE);
text.append(TAB).append(TAB).append("}").append(NEW_LINE);
- if(port.getProtocol().equals("https")) {
+ if (port.getProtocol().equals("https")) {
text.append(TAB).append(TAB).append("ssl on;").append(NEW_LINE);
- text.append(TAB).append(TAB).append("ssl_certificate ").append(System.getProperty("nginx.cert.path")).append (";").append(NEW_LINE);
- text.append(TAB).append(TAB).append("ssl_certificate_key ").append(System.getProperty("nginx.key.path")).append (";").append(NEW_LINE);
+ text.append(TAB).append(TAB).append("ssl_certificate ").append(System.getProperty("nginx.cert.path")).append(";").append(NEW_LINE);
+ text.append(TAB).append(TAB).append("ssl_certificate_key ").append(System.getProperty("nginx.key.path")).append(";").append(NEW_LINE);
}
text.append(TAB).append("}").append(NEW_LINE);