diff --git a/v2.5/bower.json b/v2.5/bower.json index f41cb52..aa82302 100644 --- a/v2.5/bower.json +++ b/v2.5/bower.json @@ -36,6 +36,7 @@ "bootstrap": "3.1.1", "moment": "~2.9.0", "d3": "~3.5.5", - "angular": "1.2.16" + "angular": "1.2.16", + "bootstrap-daterangepicker": "1.3.12" } } diff --git a/v2.5/src/app/controllers/wizardController.coffee b/v2.5/src/app/controllers/wizardController.coffee index 61c63b9..83fccf8 100644 --- a/v2.5/src/app/controllers/wizardController.coffee +++ b/v2.5/src/app/controllers/wizardController.coffee @@ -232,10 +232,10 @@ define(['./baseController'], ()-> $scope.commit = (sendRequest) -> wizardService.targetSystemConfigCommit($scope, sendRequest) - $scope.addValue = (key1,key2) -> - if !$scope.package_config[key1][key2] - $scope.package_config[key1][key2] = [] - $scope.package_config[key1][key2].push "" + $scope.addValue = (key1,key2,key3) -> + if !$scope.package_config[key1][key2][key3] + $scope.package_config[key1][key2][key3] = [] + $scope.package_config[key1][key2][key3].push "" ] .controller 'roleAssignCtrl', ['$scope', 'wizardService', '$filter', 'ngTableParams', ($scope, wizardService, $filter, ngTableParams) -> diff --git a/v2.5/src/app/partials/package_config.tpl.html b/v2.5/src/app/partials/package_config.tpl.html index fc1667d..c265052 100644 --- a/v2.5/src/app/partials/package_config.tpl.html +++ b/v2.5/src/app/partials/package_config.tpl.html @@ -43,6 +43,73 @@ + + +
+
+
+
+
+
+ + +
+ + +
+ + +
+ + +
+ +
+
+ + + + + + + + + + + + + + + +
+
+
+ +
+ + +
+
+
+
+ + +
diff --git a/v2.5/src/app/partials/review.tpl.html b/v2.5/src/app/partials/review.tpl.html index bbc26f6..89401a2 100644 --- a/v2.5/src/app/partials/review.tpl.html +++ b/v2.5/src/app/partials/review.tpl.html @@ -42,7 +42,7 @@
- + @@ -55,12 +55,12 @@ - + - +
{{key}} {{value}}
Username {{server_credentials.username}}{{os_global_config.server_credentials.username}}
Password {{server_credentials.password}}{{os_global_config.server_credentials.password}}
@@ -80,7 +80,7 @@ - + {{key}} {{value.percentage}} {{value.max_size}} @@ -117,6 +117,8 @@ 'sort-desc': tableParams.isSortBy(column.field, 'desc')}" ng-click="tableParams.sorting(column.field, tableParams.isSortBy(column.field, 'asc') ? 'desc' : 'asc')" ng-if="column.title!='Roles'">
{{column.title}}
+ + {{key}} @@ -126,30 +128,30 @@ - - - - - - - + + + + + + - + - - - - {{cluster.name}}  + + + {{cluster.name}}  + - - - {{server[column.field]}} - + + {{server[column.field]}} + @@ -215,18 +217,18 @@ - + + -
Network InterfaceNetwork
{{value}}
{{key}}
{{value}}
@@ -269,11 +271,11 @@ tunnel_id_ranges_{{key}} {{value}} - + network_vlan_ranges_{{key}} {{value}} - + bridge_mappins_{{key}} {{value}} diff --git a/v2.5/src/app/server/appDev.js b/v2.5/src/app/server/appDev.js index 46b32c3..fe01f02 100644 --- a/v2.5/src/app/server/appDev.js +++ b/v2.5/src/app/server/appDev.js @@ -1180,63 +1180,75 @@ define(['angular', 'angularMocks'], function() { "form_name": "cephForm", "data_structure": "form", "data":[{ - "label": "OP Threads", - "is_required": 'false', - "name": "op_threads", - "default_value": "1", - "display_type": "text" - },{ - "label": "Journal Size", - "is_required": 'false', - "default_value": "1", - "name": "journal_size", - "display_type": "text" - },{ - "label": "OSD Pool Size", - "is_required": 'true', - "default_value": "1", - "name": "osd_pool_size", - "display_type": "text" - },{ - "label": "OSD Pool PG Number", - "is_required": 'true', - "default_value": "1", - "name": "osd_pool_pgp_num", - "display_type": "text" - }] + "name":"global_config", + "content":[ + { + "label": "OP Threads", + "is_required": 'false', + "name": "op_threads", + "default_value": "1", + "display_type": "text" + },{ + "label": "Journal Size", + "is_required": 'false', + "default_value": "1", + "name": "journal_size", + "display_type": "text" + }] + },{ + "name":"osd_config", + "content":[ + { + "label": "OSD Pool Size", + "is_required": 'true', + "default_value": "1", + "name": "osd_pool_size", + "display_type": "text" + },{ + "label": "OSD Pool PG Number", + "is_required": 'true', + "default_value": "1", + "name": "osd_pool_pgp_num", + "display_type": "text" + }] + }] },{ "accordion_heading": "Neutron Configurations", "category": "neutron_config", "form_name": "neutronForm", "data_structure": "form", "data":[{ - "name": "tenant_network_type", - "input_type": "dropdown", - "label": "Tenant Network Type", - "content_data":{ - "gre":[{ - "is_required": 'true', - "display_type": "dropdown_text_multiple", - "name": "tunnel_id_ranges", - "label": "Tunnel ID Ranges", - "hint": "1:1000" - }], - "vlan":[{ - "is_required": 'true', - "display_type": "dropdown_text_multiple", - "name": "vlan_ranges", - "label": "Network Vlan Ranges", - "hint": "physnet1:2700:2999" - },{ - "is_required": 'true', - "display_type": "dropdown_text_multiple", - "name": "bridge", - "label": "Bridge Mapping", - "hint": "physnet1:br-eth1" - }] - }, - "is_required": 'true', - "options":['gre', 'vlan'] + "name":"openvswitch", + "content":[{ + "name": "tenant_network_type", + "input_type": "dropdown", + "label": "Tenant Network Type", + "default_value": "gre", + "content_data":{ + "gre":[{ + "is_required": 'true', + "display_type": "dropdown_text_multiple", + "name": "tunnel_id_ranges", + "label": "Tunnel ID Ranges", + "hint": "1:1000" + }], + "vlan":[{ + "is_required": 'true', + "display_type": "dropdown_text_multiple", + "name": "vlan_ranges", + "label": "Network Vlan Ranges", + "hint": "physnet1:2700:2999" + },{ + "is_required": 'true', + "display_type": "dropdown_text_multiple", + "name": "bridge", + "label": "Bridge Mapping", + "hint": "physnet1:br-eth1" + }] + }, + "is_required": 'true', + "options":['gre', 'vlan'] + }] }] },{ "accordion_heading": "High Availability Configurations", @@ -1644,7 +1656,7 @@ define(['angular', 'angularMocks'], function() { } ], "order": 2, - "name": "sever_credentials" + "name": "server_credentials" }, { "title": "", diff --git a/v2.5/src/app/services/wizardService.coffee b/v2.5/src/app/services/wizardService.coffee index bdfa3d1..1052c6a 100644 --- a/v2.5/src/app/services/wizardService.coffee +++ b/v2.5/src/app/services/wizardService.coffee @@ -267,7 +267,14 @@ define(['./baseService'], ()-> $scope.service_credentials = @wizardFactory.getServiceCredentials() $scope.console_credentials = @wizardFactory.getConsoleCredentials() - $scope.package_config = @wizardFactory.getPackageConfig(); + $scope.package_config = @wizardFactory.getPackageConfig() + + if $scope.package_config["neutron_config"] + if $scope.package_config["neutron_config"]["openvswitch"] + for key,value of $scope.package_config["neutron_config"]["openvswitch"] + $scope.package_config["neutron_config"][key] = value + + typeIsArray = Array.isArray || ( value ) -> return {}.toString.call( value ) is '[object Array]' @dataService.getPackageConfigUiElements($scope.cluster.flavor.id).success (data) -> $scope.metaData = data.flavor_config @@ -279,18 +286,31 @@ define(['./baseService'], ()-> if value.data_structure is "form" for serialNum, content of value.data if !$scope.package_config[value.category][content.name] - if !content.default_value - $scope.package_config[value.category][content.name] = "" + if !content.content + if !content.default_value + $scope.package_config[value.category][content.name] = "" + else + $scope.package_config[value.category][content.name] = content.default_value else - $scope.package_config[value.category][content.name] = content.default_value - for content_data_key, content_data_value of content.content_data - for details_content_data_key, details_content_data_value of content_data_value - if !$scope.package_config[value.category][details_content_data_value.name] - if !details_content_data_value.hint - $scope.package_config[value.category][details_content_data_value.name] = [""] + $scope.package_config[value.category][content.name] = {} + if content.content + for content_data_serialNum, content_data_value of content.content + if !$scope.package_config[value.category][content.name][content_data_value.name] + if !content_data_value.default_value + if !content_data_value.content_data + $scope.package_config[value.category][content.name][content_data_value.name] = "" + else + $scope.package_config[value.category][content.name][content_data_value.name] = {} else - $scope.package_config[value.category][details_content_data_value.name] = [details_content_data_value.hint] - + $scope.package_config[value.category][content.name][content_data_value.name] = content_data_value.default_value + for details_content_data_key, details_content_data_value of content_data_value.content_data + if details_content_data_key is content_data_value.default_value + for details_key, details_value of details_content_data_value + if !$scope.package_config[value.category][content.name][details_value.name] + if !details_value.hint + $scope.package_config[value.category][content.name][details_value.name] = [""] + else + $scope.package_config[value.category][content.name][details_value.name] = [details_value.hint] if value.category is "service_credentials" or value.category is "console_credentials" if !$scope.package_config["security"] $scope.package_config["security"] = {} @@ -299,21 +319,23 @@ define(['./baseService'], ()-> else $scope.metaData[key].dataSource = $scope.package_config[value.category] - $scope.change = (category,name,value) -> - for i of $scope.package_config[category] - if i!=name - delete $scope.package_config[category][i] - for metaKey, metaValue of $scope.metaData - if metaValue.category is category - for serialNum, content of metaValue.data - for content_data_key, content_data_value of content.content_data - if content_data_key is value - for i in content_data_value - if !$scope.package_config[category][i.name] - if !i.hint - $scope.package_config[category][i.name] = [""] - else - $scope.package_config[category][i.name] = [i.hint] + $scope.change = (category,subname,name,value) -> + for i of $scope.package_config[category][subname] + if i isnt name + delete $scope.package_config[category][subname][i] + for metaKey, metaValue of $scope.metaData + if metaValue.category is category + for serialNum, content of metaValue.data + for content_data_key, content_data_value of content.content + for detail_data_key, detail_data_value of content_data_value.content_data + if detail_data_key is value + for i in detail_data_value + if !$scope.package_config[category][subname][i.name] + if !i.hint + $scope.package_config[category][subname][i.name] = [""] + else + $scope.package_config[category][subname][i.name] = [i.hint] + keyLength_service_credentials = Object.keys($scope.service_credentials).length; $scope.editServiceMode = [] $scope.editServiceMode.length = keyLength_service_credentials @@ -384,10 +406,18 @@ define(['./baseService'], ()-> $scope.service_credentials = @wizardFactory.getServiceCredentials() $scope.console_credentials = @wizardFactory.getConsoleCredentials() $scope.global_config = @wizardFactory.getGeneralConfig() - $scope.cephConfig = @wizardFactory.getCephConfig() + + $scope.os_global_config = @wizardFactory.getOsGlobalConfig() + $scope.packageConfig = @wizardFactory.getPackageConfig() + + if $scope.packageConfig.ceph_config + $scope.cephConfig = $scope.packageConfig.ceph_config + if $scope.packageConfig.neutron_config + $scope.neutronConfig = $scope.packageConfig.neutron_config @getServerColumns().success (data) -> $scope.server_columns = data.review + console.log(data.review) for value, index in data.review if value.title == "Hostname" temp = $scope.server_columns[0]; @@ -562,7 +592,7 @@ define(['./baseService'], ()-> # get rid of redundant field (ex: comfirm password should not be sent back to server) for category in $scope.metaData - console.log("category", category) + # console.log("category", category) for content in category.data if content.datamatch delete submitData.os_config[category.name][content.name] @@ -748,46 +778,6 @@ define(['./baseService'], ()-> return; $scope.$emit "loading", true - # targetSysConfigData = - # "package_config": - # "security": - # "service_credentials": $scope.service_credentials - # "console_credentials": $scope.console_credentials - # targetSysConfigData["package_config"]["ceph_config"] = $scope.cephConfig if $scope.currentAdapterName == "ceph_openstack_icehouse" - - if $scope.currentAdapterName == "ceph_firefly" - targetSysConfigData["package_config"]={} - targetSysConfigData["package_config"]["ceph_config"] = $scope.cephConfig - - if $scope.package_config["neutron_config"] - if !$scope.package_config["neutron_config"]["openvswitch"] - $scope.package_config["neutron_config"]["openvswitch"] = {} - for key,value of $scope.package_config["neutron_config"] - if key isnt "openvswitch" - if typeof value is "string" - $scope.package_config["neutron_config"]["openvswitch"][key] = value - else - $scope.package_config["neutron_config"]["openvswitch"][key] = [] - for num,item of value - $scope.package_config["neutron_config"]["openvswitch"][key].push(item) - delete $scope.package_config["neutron_config"][key] - - - if $scope.package_config["ceph_config"] - if !$scope.package_config["ceph_config"]["osd_config"] - $scope.package_config["ceph_config"]["osd_config"] = {} - if !$scope.package_config["ceph_config"]["global_config"] - $scope.package_config["ceph_config"]["global_config"] = {} - for key, value of $scope.package_config["ceph_config"] - if key is "op_threads" or key is "journal_size" - if key is "op_threads" - $scope.package_config["ceph_config"]["osd_config"][key] = parseInt(value) - else - $scope.package_config["ceph_config"]["osd_config"][key] = value - delete $scope.package_config["ceph_config"][key] - if key is "osd_pool_size" or key is "osd_pool_pgp_num" or key is "osd_pool_pg_num" - $scope.package_config["ceph_config"]["global_config"][key] = value - delete $scope.package_config["ceph_config"][key] targetSysConfigData = "package_config": $scope.package_config @@ -818,19 +808,6 @@ define(['./baseService'], ()-> "state": "invalid", "message": message ) - - # @dataService.updateClusterConfig($scope.cluster.id, targetSysConfigData).success (data) -> - # wizardFactory.setCommitState( - # "name": "package_config" - # "state": "success" - # "message": "" - # ) - # .error (response) -> - # wizardFactory.setCommitState( - # "name": "package_config" - # "state": "error" - # "message": response - # ) # manually assign roles assignRole: ($scope, role) -> serverChecked = false