Skip to content

Commit

Permalink
Fixed issues on LBaaS wizard
Browse files Browse the repository at this point in the history
    1. On pool member page not able to click next button when Member IP address is empty.
    2. On pool page for custom attribute (SSL Ciphers) now accept only number.
    3. Added validation for all Custom Attributes
Change-Id: Ic837496810f4a81723047d02ff0ed58b58e57230
Related-Bug: #1747734
  • Loading branch information
Suresh Akula committed Feb 12, 2018
1 parent 856c434 commit dcc4c04
Show file tree
Hide file tree
Showing 6 changed files with 149 additions and 38 deletions.
78 changes: 51 additions & 27 deletions webroot/config/networking/loadbalancer/ui/js/models/lbCfgModel.js
Expand Up @@ -11,7 +11,7 @@ define([
var lbCfgFormatters = new LbCfgFormatters();
var lbCfgModel = ContrailConfigModel.extend({
defaultConfig: {
'name': 'Load balancer 1',
'name': '',
'display_name': '',
'description': '',
'ip_address': '',
Expand All @@ -24,13 +24,13 @@ define([
'lb_admin_state': true,
'lb_floating_ip': '',
'lb_subnet': '',
'listener_name':'Listener 1',
'listener_name':'',
'listener_description':'',
'listener_protocol':'',
'listener_port':'',
'listener_admin_state': true,
'connection_limit': -1,
'pool_name':'Pool 1',
'pool_name':'',
'pool_description':'',
'pool_method':'',
'pool_member': [],
Expand Down Expand Up @@ -140,109 +140,133 @@ define([
'global_max_conn_attr': function(value, attr, data) {
var lbProvider = data.lb_provider.split(';')[1];
if(lbProvider === 'opencontrail' && value !== ''){
var port = Number(value);
if(port < 1 || port > 65535){
var cusAttr = Number(value);
if(cusAttr < 1 || cusAttr > 65535){
return "The Maximum Connection must be a number between 1 and 65535.";
}
}else{
return "The Maximum Connection must be a number between 1 and 65535.";
}
},
'global_max_conn_rate_attr': function(value, attr, data) {
var lbProvider = data.lb_provider.split(';')[1];
if(lbProvider === 'opencontrail' && value !== ''){
var port = Number(value);
if(port < 1 || port > 65535){
var cusAttr = Number(value);
if(cusAttr < 1 || cusAttr > 65535){
return "The Maximum Connection Rate must be a number between 1 and 65535.";
}
}else{
return "The Maximum Connection Rate must be a number between 1 and 65535.";
}
},
'global_max_sess_rate_attr': function(value, attr, data) {
var lbProvider = data.lb_provider.split(';')[1];
if(lbProvider === 'opencontrail' && value !== ''){
var port = Number(value);
if(port < 1 || port > 65535){
var cusAttr = Number(value);
if(cusAttr < 1 || cusAttr > 65535){
return "The Maximum Session Rate must be a number between 1 and 65535.";
}
}else{
return "The Maximum Session Rate must be a number between 1 and 65535.";
}
},
'frontend_rate_limit_sessions_attr': function(value, attr, data) {
var lbProvider = data.lb_provider.split(';')[1];
if(lbProvider === 'opencontrail' && value !== ''){
var port = Number(value);
if(port < 1 || port > 65535){
var cusAttr = Number(value);
if(cusAttr < 1 || cusAttr > 65535){
return "The Rate Limit Session must be a number between 1 and 65535.";
}
}else{
return "The Rate Limit Session must be a number between 1 and 65535.";
}
},
'default_server_timeout_attr': function(value, attr, data) {
var lbProvider = data.lb_provider.split(';')[1];
if(lbProvider === 'opencontrail' && value !== ''){
var port = Number(value);
if(port < 1 || port > 5000000){
var cusAttr = Number(value);
if(cusAttr < 1 || cusAttr > 5000000){
return "The Server Timeout must be a number between 1 and 5000000.";
}
}else{
return "The Server Timeout must be a number between 1 and 5000000.";
}
},
'default_client_timeout_attr': function(value, attr, data) {
var lbProvider = data.lb_provider.split(';')[1];
if(lbProvider === 'opencontrail' && value !== ''){
var port = Number(value);
if(port < 1 || port > 5000000){
var cusAttr = Number(value);
if(cusAttr < 1 || cusAttr > 5000000){
return "The Client Timeout must be a number between 1 and 5000000.";
}
}else{
return "The Client Timeout must be a number between 1 and 5000000.";
}
},
'default_connect_timeout_attr': function(value, attr, data) {
var lbProvider = data.lb_provider.split(';')[1];
if(lbProvider === 'opencontrail' && value !== ''){
var port = Number(value);
if(port < 1 || port > 5000000){
var cusAttr = Number(value);
if(cusAttr < 1 || cusAttr > 5000000){
return "The Connect Timeout must be a number between 1 and 5000000.";
}
}else{
return "The Connect Timeout must be a number between 1 and 5000000.";
}
},
'global_max_ssl_conn_aatr': function(value, attr, data) {
var lbProvider = data.lb_provider.split(';')[1];
if(lbProvider === 'opencontrail' && value !== ''){
var port = Number(value);
if(port < 1 || port > 65535){
var cusAttr = Number(value);
if(cusAttr < 1 || cusAttr > 65535){
return "The Maximum SSL Connection must be a number between 1 and 65535.";
}
}else{
return "The Maximum SSL Connection must be a number between 1 and 65535.";
}
},
'global_max_ssl_rate_attr': function(value, attr, data) {
var lbProvider = data.lb_provider.split(';')[1];
if(lbProvider === 'opencontrail' && value !== ''){
var port = Number(value);
if(port < 1 || port > 65535){
var cusAttr = Number(value);
if(cusAttr < 1 || cusAttr > 65535){
return "The Maximum SSL Rate must be a number between 1 and 65535.";
}
}else{
return "The Maximum SSL Rate must be a number between 1 and 65535.";
}
},
'global_ssl_ciphers_attr': function(value, attr, data) {
var lbProvider = data.lb_provider.split(';')[1];
if(lbProvider === 'opencontrail' && value !== ''){
var port = Number(value);
if(port < 1 || port > 100){
var cusAttr = Number(value);
if(cusAttr < 1 || cusAttr > 100){
return "The SSL Ciphers must be a number between 1 and 100.";
}
}else{
return "The SSL Ciphers must be a number between 1 and 100.";
}
},
'global_tune_http_max_header_attr': function(value, attr, data) {
var lbProvider = data.lb_provider.split(';')[1];
if(lbProvider === 'opencontrail' && value !== ''){
var port = Number(value);
if(port < 1 || port > 128){
var cusAttr = Number(value);
if(cusAttr < 1 || cusAttr > 128){
return "The Tune Http Maximum Header Ciphers must be a number between 1 and 128.";
}
}else{
return "The Tune Http Maximum Header Ciphers must be a number between 1 and 128.";
}
},
'global_tune_ssl_max_record_attr': function(value, attr, data) {
var lbProvider = data.lb_provider.split(';')[1];
if(lbProvider === 'opencontrail' && value !== ''){
var port = Number(value);
if(port < 1 || port > 16384){
var cusAttr = Number(value);
if(cusAttr < 1 || cusAttr > 16384){
return "The Tune SSL Maximum Record Ciphers must be a number between 1 and 16384.";
}
}else{
return "The Tune SSL Maximum Record Ciphers must be a number between 1 and 16384.";
}
}
}
Expand Down
Expand Up @@ -13,9 +13,9 @@ define([
defaultConfig: {
'pool_member_ip_address' : '',
'pool_member_subnet' : '',
'pool_member_port': '',
'pool_member_port': '80',
'pool_member_weight':'1',
'pool_name':''
'pool_name':'Member 1'
},

formatModelConfig: function (modelConfig) {
Expand Down
Expand Up @@ -5,8 +5,9 @@
define([
'underscore',
'contrail-model',
'config/networking/loadbalancer/ui/js/models/poolMemberCollectionModel'
], function (_, ContrailModel, PoolMemberCollectionModel) {
'config/networking/loadbalancer/ui/js/models/poolMemberCollectionModel',
'config/networking/loadbalancer/ui/js/views/lbCfgFormatters'
], function (_, ContrailModel, PoolMemberCollectionModel, LbCfgFormatters) {
var poolMemberModel = ContrailModel.extend({
defaultConfig: {
"display_name": "",
Expand Down Expand Up @@ -66,7 +67,26 @@ define([
if(port < 1 || port > 65535){
return "The Port must be a number between 1 and 65535.";
}
}
},
'ip_address' : function(value, attr, data) {
if(value == null || value.trim() == "") {
return;
}
if(!lbCfgFormatters.validateIP(value)){
return "The IP address is not valid.";
}
if(data.lb_subnet != "") {
var subnet = data.lb_subnet.split(';')[1];
if(!isIPBoundToRange(subnet, value)){
var ip = subnet.split('/')[0];
return "Enter a fixed IP within the selected subnet range " + ip;
}
if(isStartAddress(subnet, value) == true ||
isEndAddress(subnet, value) == true) {
return "Fixed IP cannot be same as broadcast/start address";
}
}
},
}
},

Expand Down
24 changes: 24 additions & 0 deletions webroot/config/networking/loadbalancer/ui/js/models/poolModel.js
Expand Up @@ -113,6 +113,8 @@ define([
if(port < 1 || port > 65535){
return "The Maximum Connection must be a number between 1 and 65535.";
}
} else {
return "The Maximum Connection must be a number between 1 and 65535.";
}
},
'pool_global_max_conn_rate_attr': function(value, attr, data) {
Expand All @@ -121,6 +123,8 @@ define([
if(port < 1 || port > 65535){
return "The Maximum Connection Rate must be a number between 1 and 65535.";
}
}else {
return "The Maximum Connection Rate must be a number between 1 and 65535.";
}
},
'pool_global_max_sess_rate_attr': function(value, attr, data) {
Expand All @@ -129,6 +133,8 @@ define([
if(port < 1 || port > 65535){
return "The Maximum Session Rate must be a number between 1 and 65535.";
}
}else {
return "The Maximum Session Rate must be a number between 1 and 65535.";
}
},
'pool_frontend_rate_limit_sessions_attr': function(value, attr, data) {
Expand All @@ -137,6 +143,8 @@ define([
if(port < 1 || port > 65535){
return "The Rate Limit Session must be a number between 1 and 65535.";
}
}else {
return "The Rate Limit Session must be a number between 1 and 65535.";
}
},
'pool_default_server_timeout_attr': function(value, attr, data) {
Expand All @@ -145,6 +153,8 @@ define([
if(port < 1 || port > 5000000){
return "The Server Timeout must be a number between 1 and 5000000.";
}
}else {
return "The Server Timeout must be a number between 1 and 5000000.";
}
},
'pool_default_client_timeout_attr': function(value, attr, data) {
Expand All @@ -153,6 +163,8 @@ define([
if(port < 1 || port > 5000000){
return "The Client Timeout must be a number between 1 and 5000000.";
}
}else {
return "The Client Timeout must be a number between 1 and 5000000.";
}
},
'pool_default_connect_timeout_attr': function(value, attr, data) {
Expand All @@ -161,6 +173,8 @@ define([
if(port < 1 || port > 5000000){
return "The Connect Timeout must be a number between 1 and 5000000.";
}
}else {
return "The Connect Timeout must be a number between 1 and 5000000.";
}
},
'pool_global_max_ssl_conn_aatr': function(value, attr, data) {
Expand All @@ -169,6 +183,8 @@ define([
if(port < 1 || port > 65535){
return "The Maximum SSL Connection must be a number between 1 and 65535.";
}
}else {
return "The Maximum SSL Connection must be a number between 1 and 65535.";
}
},
'pool_global_max_ssl_rate_attr': function(value, attr, data) {
Expand All @@ -177,6 +193,8 @@ define([
if(port < 1 || port > 65535){
return "The Maximum SSL Rate must be a number between 1 and 65535.";
}
}else {
return "The Maximum SSL Rate must be a number between 1 and 65535.";
}
},
'pool_global_ssl_ciphers_attr': function(value, attr, data) {
Expand All @@ -185,6 +203,8 @@ define([
if(port < 1 || port > 100){
return "The SSL Ciphers must be a number between 1 and 100.";
}
}else {
return "The SSL Ciphers must be a number between 1 and 100.";
}
},
'pool_global_tune_http_max_header_attr': function(value, attr, data) {
Expand All @@ -193,6 +213,8 @@ define([
if(port < 1 || port > 128){
return "The Tune Http Maximum Header Ciphers must be a number between 1 and 128.";
}
}else {
return "The Tune Http Maximum Header Ciphers must be a number between 1 and 128.";
}
},
'pool_global_tune_ssl_max_record_attr': function(value, attr, data) {
Expand All @@ -201,6 +223,8 @@ define([
if(port < 1 || port > 16384){
return "The Tune SSL Maximum Record Ciphers must be a number between 1 and 16384.";
}
}else {
return "The Tune SSL Maximum Record Ciphers must be a number between 1 and 16384.";
}
}
}
Expand Down

0 comments on commit dcc4c04

Please sign in to comment.