summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2015-02-25 08:34:43 +0000
committerKeith Wall <kwall@apache.org>2015-02-25 08:34:43 +0000
commitfb03abb7226ab42a6090a967c1748373c3d57e21 (patch)
tree0df4fac73f35d69e9b564c2baca7138c8a8f6a02
parent8322532da30ec68bf4ebdf725adbdaef19901ff4 (diff)
downloadqpid-python-fb03abb7226ab42a6090a967c1748373c3d57e21.tar.gz
QPID-6408: [Java Broker] Expose the AMQP connection limits through the web management UI
Merged with command: svn merge -c 1661741 https://svn.apache.org/repos/asf/qpid/trunk git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/0.32@1662181 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/addPort.html17
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js5
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Port.js13
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js15
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/showPort.html81
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/showQueue.html2
6 files changed, 95 insertions, 38 deletions
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/addPort.html b/qpid/java/broker-plugins/management-http/src/main/java/resources/addPort.html
index b787e701ec..10b79987a5 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/addPort.html
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/addPort.html
@@ -159,6 +159,23 @@
</div>
</div>
+ <div id="formAddPort:maxOpenConnections" >
+ <div class="clear">
+ <div class="formLabel-labelCell">
+ <label for="formAddPort.transports">Maximum number of connections:</label>
+ </div>
+ <div class="formLabel-controlCell">
+ <input id="formAddPort.maxOpenConnections" type="text"
+ data-dojo-type="dijit.form.ValidationTextBox"
+ data-dojo-props="
+ name: 'maxOpenConnections',
+ placeHolder: 'maximum number of connections',
+ promptMessage: 'Maximum number of concurrent connections permitted by this port. The <code>-1</code> signifies no limit is imposed.',
+ title: 'Enter a maximum number of connections'"/>
+ </div>
+ </div>
+ </div>
+
<div id="formAddPort:fieldsTransportSSL">
<div class="clear">
<div class="formLabel-labelCell">
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js
index 3938b74762..746eb4bbbc 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js
@@ -737,6 +737,11 @@ define(["dojo/_base/xhr",
return "^(\\d+)|" + singleContextVarRegexp + "$";
}
+ util.signedOrContextVarRegexp = function(constraints)
+ {
+ return "^(-?\\d+)|" + singleContextVarRegexp + "$";
+ }
+
util.nameOrContextVarRegexp = function(constraints)
{
return "^(\\w+)|" + singleContextVarRegexp + "$";
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Port.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Port.js
index 320de8a876..91407c0e83 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Port.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Port.js
@@ -138,12 +138,15 @@ define(["dojo/dom",
"needClientAuthValue",
"wantClientAuthValue",
"trustStoresValue",
+ "connectionCountValue",
+ "maxOpenConnectionsValue",
"authenticationProvider",
"bindingAddress",
"keyStore",
"needClientAuth",
"wantClientAuth",
- "trustStores"
+ "trustStores",
+ "maxOpenConnections"
]);
this.query = url;
@@ -151,6 +154,7 @@ define(["dojo/dom",
xhr.get({url: this.query, sync: properties.useSyncGet, handleAs: "json"}).then(function(data)
{
that.portData = data[0];
+ util.flattenStatistics( that.portData );
that.updateHeader();
});
@@ -178,6 +182,9 @@ define(["dojo/dom",
this.protocolsValue.innerHTML = printArray( "protocols", this.portData);
this.transportsValue.innerHTML = printArray( "transports", this.portData);
this.bindingAddressValue.innerHTML = this.portData[ "bindingAddress" ] ? entities.encode(String(this.portData[ "bindingAddress" ])) : "" ;
+ this.connectionCountValue.innerHTML = this.portData[ "connectionCount" ] ? entities.encode(String(this.portData[ "connectionCount" ])) : "0" ;
+ this.maxOpenConnectionsValue.innerHTML = (this.portData[ "maxOpenConnections" ] && this.portData[ "maxOpenConnections" ] >= 0) ? entities.encode(String(this.portData[ "maxOpenConnections" ])) : "(no limit)" ;
+
this.keyStoreValue.innerHTML = this.portData[ "keyStore" ] ? entities.encode(String(this.portData[ "keyStore" ])) : "";
this.needClientAuthValue.innerHTML = "<input type='checkbox' disabled='disabled' "+(this.portData[ "needClientAuth" ] ? "checked='checked'": "")+" />" ;
this.wantClientAuthValue.innerHTML = "<input type='checkbox' disabled='disabled' "+(this.portData[ "wantClientAuth" ] ? "checked='checked'": "")+" />" ;
@@ -191,6 +198,9 @@ define(["dojo/dom",
this.needClientAuth.style.display = "needClientAuth" in typeMetaData.attributes ? "block" : "none";
this.wantClientAuth.style.display = "wantClientAuth" in typeMetaData.attributes ? "block" : "none";
this.trustStores.style.display = "trustStores" in typeMetaData.attributes ? "block" : "none";
+
+ this.maxOpenConnections.style.display = "maxOpenConnections" in typeMetaData.attributes ? "block" : "none";
+
};
PortUpdater.prototype.update = function()
@@ -201,6 +211,7 @@ define(["dojo/dom",
xhr.get({url: this.query, sync: properties.useSyncGet, handleAs: "json"}).then(function(data)
{
thisObj.portData = data[0];
+ util.flattenStatistics( thisObj.portData );
thisObj.updateHeader();
});
};
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js
index 43ccdfff70..befb5df9c1 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js
@@ -79,6 +79,10 @@ define(["dojo/_base/xhr",
registry.byId("formAddPort.bindingAddress").set("disabled", ! ("bindingAddress" in typeMetaData.attributes));
dom.byId("formAddPort:fieldsBindingAddress").style.display = "bindingAddress" in typeMetaData.attributes ? "block" : "none";
+ //maxOpenConnections
+ registry.byId("formAddPort.maxOpenConnections").set("disabled", ! ("maxOpenConnections" in typeMetaData.attributes));
+ dom.byId("formAddPort:maxOpenConnections").style.display = "maxOpenConnections" in typeMetaData.attributes ? "block" : "none";
+
//transports
var transportsMultiSelect = dom.byId("formAddPort.transports");
var transportsValidValues = typeMetaData.attributes.transports.validValues;
@@ -314,6 +318,7 @@ define(["dojo/_base/xhr",
var nameWidget = registry.byId("formAddPort.name");
var typeWidget = registry.byId("formAddPort.type");
var portWidget = registry.byId("formAddPort.port");
+ var maxOpenConnectionsWidget = registry.byId("formAddPort.maxOpenConnections");
var editWarning = dojo.byId("portEditWarning");
var providerWidget = registry.byId("formAddPort.authenticationProvider");
@@ -418,6 +423,13 @@ define(["dojo/_base/xhr",
bindAddressWidget.set("disabled", ! ("bindingAddress" in typeMetaData.attributes));
dom.byId("formAddPort:fieldsBindingAddress").style.display = "bindingAddress" in typeMetaData.attributes ? "block" : "none";
+ //maxOpenConnections
+ var maxOpenConnectionsWidget = registry.byId("formAddPort.maxOpenConnections");
+ maxOpenConnectionsWidget.set("regExpGen", util.signedOrContextVarRegexp);
+ maxOpenConnectionsWidget.set("value", port.maxOpenConnections ? port.maxOpenConnections : "");
+ maxOpenConnectionsWidget.set("disabled", ! ("maxOpenConnections" in typeMetaData.attributes));
+ dom.byId("formAddPort:maxOpenConnections").style.display = "maxOpenConnections" in typeMetaData.attributes ? "block" : "none";
+
//ssl
keystoreWidget.set("value", port.keyStore ? port.keyStore : "");
if (port.trustStores)
@@ -447,6 +459,7 @@ define(["dojo/_base/xhr",
truststoreWidget.initialValue = port.trustStores;
transportWidget.initialValue = transportWidget.value;
providerWidget.initialValue = providerWidget.value;
+ maxOpenConnectionsWidget.initialValue = maxOpenConnectionsWidget.value;
registry.byId("addPort").show();
util.applyMetadataToWidgets(registry.byId("addPort").domNode, "Port", portType);
@@ -465,8 +478,8 @@ define(["dojo/_base/xhr",
nameWidget.set("disabled", false);
nameWidget.set("regExpGen", util.nameOrContextVarRegexp);
-
portWidget.set("regExpGen", util.numericOrContextVarRegexp);
+ maxOpenConnectionsWidget.set("regExpGen", util.signedOrContextVarRegexp);
editWarning.style.display = "none";
registry.byId("addPort").show();
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/showPort.html b/qpid/java/broker-plugins/management-http/src/main/java/resources/showPort.html
index 32071e262d..5e324bd219 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/showPort.html
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/showPort.html
@@ -25,61 +25,72 @@
<div class="formLabel-labelCell">Name:</div>
<div class="nameValue"></div>
</div>
-
- <div class="clear type">
- <div class="formLabel-labelCell">Port Type:</div>
- <div class="typeValue"></div>
+ <div class="clear"></div>
+ <div class="alignLeft">
+ <div class="clear type">
+ <div class="formLabel-labelCell">Port Type:</div>
+ <div class="formValue-valueCell typeValue"></div>
+ </div>
</div>
+ <div class="alignRight">
+ <div class="clear maxOpenConnections">
+ <div class="formLabel-labelCell">Open connections (current/maximum):</div>
+ <div class="formValue-valueCell">
+ <span class="connectionCountValue"></span><span>/</span><span class="maxOpenConnectionsValue"></span>
+ </div>
+ </div>
+ </div>
- <div class="clear state">
+ <div class="clear state">
<div class="formLabel-labelCell">State:</div>
- <div class="stateValue"></div>
- </div>
+ <div class="formValue-valueCell stateValue"></div>
+ </div>
- <div class="clear port">
+ <div class="clear port">
<div class="formLabel-labelCell">Port Number:</div>
- <div class="portValue"></div>
- </div>
+ <div class="formValue-valueCell portValue"></div>
+ </div>
- <div class="clear protocols">
+ <div class="clear protocols">
<div class="formLabel-labelCell">Protocols:</div>
- <div class="protocolsValue multiLineValue"></div>
- </div>
+ <div class="formValue-valueCell protocolsValue multiLineValue"></div>
+ </div>
<div class="clear authenticationProvider">
- <div class="formLabel-labelCell">Authentication Provider:</div>
- <div class="authenticationProviderValue"></div>
+ <div class="formLabel-labelCell">Authentication Provider:</div>
+ <div class="formValue-valueCell authenticationProviderValue"></div>
</div>
<div class="clear bindingAddress">
- <div class="formLabel-labelCell">Binding address:</div>
- <div class="bindingAddressValue"></div>
+ <div class="formLabel-labelCell">Binding address:</div>
+ <div class="formValue-valueCell bindingAddressValue"></div>
</div>
<div class="clear transports">
<div class="formLabel-labelCell">Transports:</div>
- <div class="transportsValue multiLineValue"></div>
- </div>
+ <div class="formValue-valueCell transportsValue multiLineValue"></div>
+ </div>
- <div class="clear keyStore">
- <div class="formLabel-labelCell">Key Store:</div>
- <div class="keyStoreValue"></div>
- </div>
+ <div class="clear keyStore">
+ <div class="formLabel-labelCell">Key Store:</div>
+ <div class="formValue-valueCell keyStoreValue"></div>
+ </div>
- <div class="clear needClientAuth">
- <div class="formLabel-labelCell">Need SSL Client Certificate:</div>
- <div class="needClientAuthValue"></div>
- </div>
+ <div class="clear needClientAuth">
+ <div class="formLabel-labelCell">Need SSL Client Certificate:</div>
+ <div class="formValue-valueCell needClientAuthValue"></div>
+ </div>
- <div class="clear wantClientAuth">
- <div class="formLabel-labelCell">Want SSL Client Certificate:</div>
- <div class="wantClientAuthValue"></div>
- </div>
+ <div class="clear wantClientAuth">
+ <div class="formLabel-labelCell">Want SSL Client Certificate:</div>
+ <div class="formValue-valueCell wantClientAuthValue"></div>
+ </div>
+
+ <div class="clear trustStores">
+ <div class="formLabel-labelCell">Trust Stores:</div>
+ <div class="formValue-valueCell trustStoresValue multiLineValue"></div>
+ </div>
- <div class="clear trustStores">
- <div class="formLabel-labelCell">Trust Stores:</div>
- <div class="trustStoresValue multiLineValue"></div>
- </div>
<div class="clear"></div>
</div>
<br/>
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/showQueue.html b/qpid/java/broker-plugins/management-http/src/main/java/resources/showQueue.html
index a068868e7f..7132dd8105 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/showQueue.html
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/showQueue.html
@@ -25,7 +25,7 @@
<div class="formLabel-labelCell">Name:</div>
<div class="name formValue-valueCell"></div>
</div>
- <div class="clear">
+ <div class="clear"></div>
<div class="alignLeft">
<div class="clear">
<div class="formLabel-labelCell">Type:</div>