Skip to content

Commit

Permalink
Partial-Bug: #1485124
Browse files Browse the repository at this point in the history
Fix Loading Issues:
1. Updated requestState related messages
2. Code cleanup and other minor enhancements

Change-Id: Ic281234cdfe106e94ea790c66341c65573efc04d
  • Loading branch information
sgrgala committed Aug 14, 2015
1 parent 7372abf commit 95b58a2
Show file tree
Hide file tree
Showing 6 changed files with 103 additions and 117 deletions.
2 changes: 1 addition & 1 deletion webroot/common/ui/js/controller.constants.js
Expand Up @@ -123,7 +123,7 @@ define([
this.VM_GRAPH_SIZE = {width: 30, height: 30};
this.VM_GRAPH_MARGIN = {top: 10, bottom: 10, left: 0, right: 0};
this.VM_CENTER_LINK_THICKNESS = 1;
this.MAX_VM_TO_PLOT = 100;
this.MAX_VM_TO_PLOT = 200;

this.get = function () {
var args = arguments;
Expand Down
19 changes: 10 additions & 9 deletions webroot/monitor/networking/ui/js/networking.main.js
Expand Up @@ -18,7 +18,7 @@ function MonitorNetworkingLoader() {
});
};
this.renderView = function (renderFn, hashParams, view) {
$(contentContainer).html("");
$(contentContainer).empty();
switch (renderFn) {
case 'renderProjects':
if (hashParams.type == "project") {
Expand Down Expand Up @@ -74,21 +74,22 @@ function MonitorNetworkingLoader() {
}
},

this.updateViewByHash = function (hashObj, lastHashObj) {
this.updateViewByHash = function (currPageQueryStr) {
var renderFn;

if(hashObj.type == "network"){
//TODO: The renderFunction should be passed from ContentHandler
if(currPageQueryStr.type == "network"){
renderFn = "renderNetworks";
} else if (hashObj.type == "project"){
} else if (currPageQueryStr.type == "project"){
renderFn = "renderProjects"
} else if (hashObj.type == "instance"){
} else if (currPageQueryStr.type == "instance"){
renderFn = "renderInstances"
} else if (hashObj.type == "flow"){
} else if (currPageQueryStr.type == "flow"){
renderFn = "renderFlows"
}
this.load({hashParams: hashObj, 'function': renderFn});
};

this.destroy = function () {
this.load({hashParams: currPageQueryStr, 'function': renderFn});
};

this.destroy = function () {};
};
2 changes: 1 addition & 1 deletion webroot/monitor/networking/ui/js/nm.view.config.js
Expand Up @@ -61,7 +61,7 @@ define([
return formattedValue;
},
margin: {left: 70},
noDataMessage: cowc.CHART_NO_DATA_MESSAGE
noDataMessage: cowm.DATA_SUCCESS_EMPTY
}
};
};
Expand Down
96 changes: 48 additions & 48 deletions webroot/monitor/networking/ui/js/views/NetworkingGraphView.js
Expand Up @@ -205,6 +205,54 @@ define([
}
},
custom: {
resize: {
iconClass: 'icon-resize-full',
title: 'Resize',
events: {
click: function (e, self, controlPanelSelector) {
$(self).find('i').addClass('icon-spin icon-spinner');
setTimeout(function () {
$(self).find('i').removeClass('icon-spin icon-spinner');
$(self).find('i').toggleClass('icon-resize-full').toggleClass('icon-resize-small');
adjustConnectedGraphDimension(selectorId, connectedSelectorId, configSelectorId, false);
$(connectedSelectorId).panzoom('reset');
$(controlPanelSelector).find('.control-panel-item').removeClass('disabled');
$(self).removeClass('refreshing');
}, 200);
}
}
},
realign: {
iconClass: function (graphView) {
var rankDir = graphView.model.rankDir;
return ((rankDir == ctwc.GRAPH_DIR_TB) ? 'icon-align-left' : 'icon-align-center');
},
title: 'Change Direction',
events: {
click: function (e, self, controlPanelSelector) {
var connectedGraphView = $(connectedSelectorId).data('graphView'),
connectedGraphModel = connectedGraphView.model;

setLoadingScreen(connectedGraphModel);
if ($(self).find('i').hasClass('icon-align-left')) {
$(self).find('i').removeClass('icon-align-left').toggleClass('icon-spin icon-spinner');
setTimeout(function () {
connectedGraphModel.reLayoutGraph(ctwc.GRAPH_DIR_LR);
//Hack to set width for Webkit browser
var width = $(connectedSelectorId + ' svg').attr('width');
$(connectedSelectorId + ' svg').attr('width', width);
}, 200)
} else if ($(self).find('i').hasClass('icon-align-center')) {
$(self).find('i').removeClass('icon-align-center').toggleClass('icon-spin icon-spinner');
setTimeout(function () {
connectedGraphModel.reLayoutGraph(ctwc.GRAPH_DIR_TB);
var width = $(connectedSelectorId + ' svg').attr('width');
$(connectedSelectorId + ' svg').attr('width', width);
}, 200);
}
}
}
},
search: {
iconClass: 'icon-search',
title: 'Search',
Expand Down Expand Up @@ -266,54 +314,6 @@ define([
}
}
},
resize: {
iconClass: 'icon-resize-full',
title: 'Resize',
events: {
click: function (e, self, controlPanelSelector) {
$(self).find('i').addClass('icon-spin icon-spinner');
setTimeout(function () {
$(self).find('i').removeClass('icon-spin icon-spinner');
$(self).find('i').toggleClass('icon-resize-full').toggleClass('icon-resize-small');
adjustConnectedGraphDimension(selectorId, connectedSelectorId, configSelectorId, false);
$(connectedSelectorId).panzoom('reset');
$(controlPanelSelector).find('.control-panel-item').removeClass('disabled');
$(self).removeClass('refreshing');
}, 200);
}
}
},
realign: {
iconClass: function (graphView) {
var rankDir = graphView.model.rankDir;
return ((rankDir == ctwc.GRAPH_DIR_TB) ? 'icon-align-left' : 'icon-align-center');
},
title: 'Change Direction',
events: {
click: function (e, self, controlPanelSelector) {
var connectedGraphView = $(connectedSelectorId).data('graphView'),
connectedGraphModel = connectedGraphView.model;

setLoadingScreen(connectedGraphModel);
if ($(self).find('i').hasClass('icon-align-left')) {
$(self).find('i').removeClass('icon-align-left').toggleClass('icon-spin icon-spinner');
setTimeout(function () {
connectedGraphModel.reLayoutGraph(ctwc.GRAPH_DIR_LR);
//Hack to set width for Webkit browser
var width = $(connectedSelectorId + ' svg').attr('width');
$(connectedSelectorId + ' svg').attr('width', width);
}, 200)
} else if ($(self).find('i').hasClass('icon-align-center')) {
$(self).find('i').removeClass('icon-align-center').toggleClass('icon-spin icon-spinner');
setTimeout(function () {
connectedGraphModel.reLayoutGraph(ctwc.GRAPH_DIR_TB);
var width = $(connectedSelectorId + ' svg').attr('width');
$(connectedSelectorId + ' svg').attr('width', width);
}, 200);
}
}
}
},
refresh: {
iconClass: 'icon-repeat',
title: 'Refresh',
Expand Down
28 changes: 0 additions & 28 deletions webroot/monitor/networking/ui/templates/networking.tmpl
Expand Up @@ -30,34 +30,6 @@
</div>
</script>

<script type="text/x-handlebars-template" id="core-chart-template">
<div class="row-fluid">
{{#each this.elementConfg}}
<div id="charts-box" class="{{#getValue "{\"1\":\"span12\",\"2\":\"span6\",\"3\":\"span4\"}" ../colCount}}{{/getValue}} widget-box transparent">
<div class="widget-header">
<h4 class="smaller">
<i id="charts-loading" class="icon-spinner icon-spin blue bigger-125"></i> {{title}}
</h4>
<div class="widget-toolbar pull-right">
<a data-action="collapse">
<i class="icon-chevron-up"></i>
</a>
</div>
</div>
<div class="widget-body">
<div class="widget-main" style="height:300px;">
{{#IfCompare @index 1 operator='%2'}}
<div class="stack-chart negate" id="{{../../id}}_{{@index}}"></div>
{{else}}
<div class="stack-chart" id="{{../../id}}_{{@index}}"></div>
{{/IfCompare}}
</div>
</div>
</div>
{{/each}}
</div>
</script>

<script type="text/x-handlebars-template" id="graph-control-panel-search-template">
<div class="row-fluid">
<input class="graph-control-panel-search-dropdown" type="text"/>
Expand Down
73 changes: 43 additions & 30 deletions webroot/setting/config_db/api/cdbquery.api.js
Expand Up @@ -3,33 +3,42 @@
*/

var cdbqueryapi = module.exports,
commonUtils = require(process.mainModule.exports["corePath"] +
'/src/serverroot/utils/common.utils'),
commonUtils = require(process.mainModule.exports["corePath"] + '/src/serverroot/utils/common.utils'),
config = process.mainModule.exports["config"],
editEnabled = config.cassandra.enable_edit,
logutils = require(process.mainModule.exports["corePath"] + '/src/serverroot/utils/log.utils');

var helenus = require('helenus'),
hosts = getCassandraHostList(config.cassandra.server_ips, config.cassandra.server_port),
pool = new helenus.ConnectionPool({
hosts:hosts,
keyspace:'config_db_uuid',
timeout:3000
});
defaultConPool = new helenus.ConnectionPool({
hosts: hosts,
keyspace: 'config_db_uuid',
timeout: 5000
}),
cql3ConPool = new helenus.ConnectionPool({
hosts: hosts,
keyspace: 'config_db_uuid',
timeout: 5000,
cqlVersion : '3.0.0'
});;

defaultConPool.on('error', function (err) {
logutils.logger.error(err.stack);
});

pool.on('error', function (err) {
cql3ConPool.on('error', function (err) {
logutils.logger.error(err.stack);
});

cdbqueryapi.listKeys4Table = function (req, res) {
var table = req.param('table'),
responseJSON = {"table":table, "keys":[], "editEnabled":editEnabled};
pool.connect(function (err, keyspace) {
defaultConPool.connect(function (err, keyspace) {
if (err) {
logutils.logger.error(err.stack);
commonUtils.handleJSONResponse(err, res, null);
} else {
pool.cql("SELECT key FROM " + table, [], function (err, results) {
defaultConPool.cql("SELECT key FROM " + table, [], function (err, results) {
if (err) {
logutils.logger.error(err.stack);
commonUtils.handleJSONResponse(err, res, null);
Expand All @@ -48,28 +57,21 @@ cdbqueryapi.listKeys4Table = function (req, res) {
cdbqueryapi.listValues4Key = function (req, res) {
var key = req.param("key"),
table = req.param("table"),
responseJSON = {"editEnabled":editEnabled, "keyvalues":[]};
pool.connect(function (err, keyspace) {
responseJSON = {"editEnabled": editEnabled, "keyvalues": []};
cql3ConPool.connect(function (err, keyspace) {
if (err) {
logutils.logger.error(err.stack);
commonUtils.handleJSONResponse(err, res, null);
} else {
keyspace.get(table, function (err, cf) {
cql3ConPool.cql("SELECT * FROM " + table + " WHERE key = ?", [convertString2Hex(key)], function (err, results) {
if (err) {
logutils.logger.error(err.stack);
commonUtils.handleJSONResponse(err, res, null);
} else {
cf.get(key, {consistency:helenus.ConsistencyLevel.ONE}, function (err, results) {
if (err) {
logutils.logger.error(err.stack);
commonUtils.handleJSONResponse(err, res, null);
} else {
results.forEach(function (row) {
responseJSON.keyvalues.push({"key":key, "table":table, "keyvalue":row.toString()});
});
commonUtils.handleJSONResponse(null, res, responseJSON);
}
results.forEach(function (row) {
responseJSON.keyvalues.push({"key": key, "table": table, "keyvalue": (row.get('column1').value).toString()});
});
commonUtils.handleJSONResponse(null, res, responseJSON);
}
});
}
Expand All @@ -80,10 +82,10 @@ cdbqueryapi.deleteValue4Key = function (req, res) {
var key = req.param("key"),
table = req.param("table"),
value = req.param("value");
if(value && value == "") {
if (value && value == "") {
value = null;
}
pool.connect(function (err, keyspace) {
defaultConPool.connect(function (err, keyspace) {
if (err) {
logutils.logger.error(err.stack);
commonUtils.handleJSONResponse(err, res, null);
Expand All @@ -93,11 +95,11 @@ cdbqueryapi.deleteValue4Key = function (req, res) {
logutils.logger.error(err.stack);
commonUtils.handleJSONResponse(err, res, null);
} else {
cf.remove(key, value, null, {consistency:helenus.ConsistencyLevel.ONE}, function (err) {
cf.remove(key, value, null, {consistency: helenus.ConsistencyLevel.ONE}, function (err) {
if (err) {
commonUtils.handleJSONResponse(err, res, null);
} else {
commonUtils.handleJSONResponse(null, res, {"success":1});
commonUtils.handleJSONResponse(null, res, {"success": 1});
}
});
}
Expand All @@ -110,12 +112,12 @@ cdbqueryapi.deleteKeyFromTable = function (req, res) {
var table = req.param('table'),
key = req.param('key'),
hexKey = new Buffer(key).toString('hex');
pool.connect(function (err, keyspace) {
defaultConPool.connect(function (err, keyspace) {
if (err) {
logutils.logger.error(err.stack);
commonUtils.handleJSONResponse(err, res, null);
} else {
pool.cql("DELETE FROM " + table + " WHERE KEY = ?", [hexKey], function (err, results) {
defaultConPool.cql("DELETE FROM " + table + " WHERE KEY = ?", [hexKey], function (err, results) {
if (err) {
logutils.logger.error(err.stack);
commonUtils.handleJSONResponse(err, res, null);
Expand All @@ -127,9 +129,20 @@ cdbqueryapi.deleteKeyFromTable = function (req, res) {
});
};

function convertString2Hex(strName) {
var hexResult = "", hex, i;

for (i = 0; i < strName.length; ++i) {
hex = strName.charCodeAt(i).toString(16);
hexResult += (hex);
}

return hexResult;
};

function getCassandraHostList(serverIPs, port) {
var hosts = [];
for(var i = 0; i < serverIPs.length; i++) {
for (var i = 0; i < serverIPs.length; i++) {
hosts.push(serverIPs[i] + ":" + port);
}
return hosts;
Expand Down

0 comments on commit 95b58a2

Please sign in to comment.