diff --git a/.gitignore b/.gitignore index d94c0c8..f63ae55 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,9 @@ *~ *.swp .DS_Store +node_modules +bower_components +.remote-sync.json +venv + + diff --git a/v2.5/assets/css/angular-ui-tree.min.css b/v2.5/assets/css/angular-ui-tree.min.css old mode 100755 new mode 100644 diff --git a/v2.5/assets/css/chosen.css b/v2.5/assets/css/chosen.css old mode 100755 new mode 100644 diff --git a/v2.5/bower.json b/v2.5/bower.json index aa82302..a124d3e 100644 --- a/v2.5/bower.json +++ b/v2.5/bower.json @@ -16,6 +16,7 @@ "devDependencies": { "angular-bootstrap": "~0.12.0", "angular": "1.2.16", + "angular-cookies": "1.2.16", "angular-daterangepicker": "~0.1.12", "bootstrap": "3.1.1", "angular-ui-router": "~0.2.13", diff --git a/v2.5/data/config.json b/v2.5/data/config.json index f6feeba..d8aa00f 100644 --- a/v2.5/data/config.json +++ b/v2.5/data/config.json @@ -16,38 +16,17 @@ "max_size": "20G" } }, - "interface": { - "eth0": { - "subnet_id": 1, - "is_mgmt": true, - "is_promiscuous": false - }, - "eth1": { - "subnet_id": 2, - "is_mgmt": false, - "is_promiscuous": true - }, - "eth2": { - "subnet_id": 1, - "is_mgmt": false, - "is_promiscuous": false - }, - "eth3": { - "subnet_id": 2, - "is_mgmt": false, - "is_promiscuous": false - } - }, + "interface": { }, "general": { "timezone": "America/Los_Angeles", "language": "en", "http_proxy": "", "https_proxy": "", "no_proxy": [""], - "ntp_server": "", - "dns_servers": [""], + "ntp_server": "127.0.0.1", + "dns_servers": ["ods.com"], "search_path": ["ods.com"], - "domain": "ods.com", + "domain": ["ods.com"], "default_gateway": "10.145.88.1", "local_repo": "" }, @@ -124,8 +103,7 @@ } }, "network_mapping": { - "management": "", - "tenant": "", + "mgmt": "", "storage": "", "external": "" } @@ -471,4 +449,4 @@ } } } -} \ No newline at end of file +} diff --git a/v2.5/data/config.json-backup b/v2.5/data/config.json-backup new file mode 100644 index 0000000..f6feeba --- /dev/null +++ b/v2.5/data/config.json-backup @@ -0,0 +1,474 @@ +{ + "openstack": { + "cluster": { + "id": 1, + "name": "demo", + "adapter_id": 1, + "os_id": 1 + }, + "partition": { + "/var": { + "percentage": 30, + "max_size": "10G" + }, + "/usr": { + "percentage": 30, + "max_size": "20G" + } + }, + "interface": { + "eth0": { + "subnet_id": 1, + "is_mgmt": true, + "is_promiscuous": false + }, + "eth1": { + "subnet_id": 2, + "is_mgmt": false, + "is_promiscuous": true + }, + "eth2": { + "subnet_id": 1, + "is_mgmt": false, + "is_promiscuous": false + }, + "eth3": { + "subnet_id": 2, + "is_mgmt": false, + "is_promiscuous": false + } + }, + "general": { + "timezone": "America/Los_Angeles", + "language": "en", + "http_proxy": "", + "https_proxy": "", + "no_proxy": [""], + "ntp_server": "", + "dns_servers": [""], + "search_path": ["ods.com"], + "domain": "ods.com", + "default_gateway": "10.145.88.1", + "local_repo": "" + }, + "server_credentials": { + "username": "", + "password": "" + }, + "service_credentials": { + "rabbitmq": { + "username": "guest", + "password": "guest" + }, + "compute": { + "username": "nova", + "password": "nova" + }, + "dashboard": { + "username": "dashboard", + "password": "dashboard" + }, + "identity": { + "username": "keystone", + "password": "keystone" + }, + "image": { + "username": "glance", + "password": "glance" + }, + "metering": { + "username": "ceilometer", + "password": "ceilometer" + }, + "mysql": { + "username": "root", + "password": "root" + }, + "volume": { + "username": "cinder", + "password": "cinder" + } + }, + "console_credentials": { + "admin": { + "username": "admin", + "password": "admin" + }, + "compute": { + "username": "nova", + "password": "nova" + }, + "dashboard": { + "username": "dashboard", + "password": "dashboard" + }, + "image": { + "username": "glance", + "password": "glance" + }, + "metering": { + "username": "ceilometer", + "password": "ceilometer" + }, + "network": { + "username": "quantum", + "password": "quantum" + }, + "object-store": { + "username": "swift", + "password": "swift" + }, + "volume": { + "username": "cinder", + "password": "cinder" + } + }, + "network_mapping": { + "management": "", + "tenant": "", + "storage": "", + "external": "" + } + }, + "openstack_ceph": { + "cluster": { + "id": 1, + "name": "demo", + "adapter_id": 1, + "os_id": 1 + }, + "partition": { + "/var": { + "percentage": 30, + "max_size": "10G" + }, + "/usr": { + "percentage": 30, + "max_size": "20G" + } + }, + "interface": { + "eth0": { + "subnet_id": 1, + "is_mgmt": true, + "is_promiscuous": false + }, + "eth1": { + "subnet_id": 2, + "is_mgmt": false, + "is_promiscuous": true + }, + "eth2": { + "subnet_id": 1, + "is_mgmt": false, + "is_promiscuous": false + }, + "eth3": { + "subnet_id": 2, + "is_mgmt": false, + "is_promiscuous": false + } + }, + "general": { + "timezone": "America/Los_Angeles", + "language": "en", + "http_proxy": "", + "https_proxy": "", + "no_proxy": [""], + "ntp_server": "", + "dns_servers": [""], + "search_path": ["ods.com"], + "domain": "ods.com", + "default_gateway": "10.145.88.1", + "local_repo": "" + }, + "server_credentials": { + "username": "", + "password": "" + }, + "service_credentials": { + "rabbitmq": { + "username": "guest", + "password": "guest" + }, + "compute": { + "username": "nova", + "password": "nova" + }, + "dashboard": { + "username": "dashboard", + "password": "dashboard" + }, + "identity": { + "username": "keystone", + "password": "keystone" + }, + "image": { + "username": "glance", + "password": "glance" + }, + "metering": { + "username": "ceilometer", + "password": "ceilometer" + }, + "mysql": { + "username": "root", + "password": "root" + }, + "volume": { + "username": "cinder", + "password": "cinder" + } + }, + "console_credentials": { + "admin": { + "username": "admin", + "password": "admin" + }, + "compute": { + "username": "nova", + "password": "nova" + }, + "dashboard": { + "username": "dashboard", + "password": "dashboard" + }, + "image": { + "username": "glance", + "password": "glance" + }, + "metering": { + "username": "ceilometer", + "password": "ceilometer" + }, + "network": { + "username": "quantum", + "password": "quantum" + }, + "object-store": { + "username": "swift", + "password": "swift" + }, + "volume": { + "username": "cinder", + "password": "cinder" + } + }, + "network_mapping": { + "management": "", + "tenant": "", + "storage": "", + "external": "", + "public_network": "", + "cluster_network": "" + }, + "ceph_config": { + "global_config": { + "osd_pool_pg_num": "1024", + "osd_pool_pgp_num": "1024", + "osd_pool_size": "3" + }, + "osd_config": { + "journal_size": "10000", + "op_threads": 10 + } + } + }, + "os_only": { + "cluster": { + "id": 1, + "name": "demo", + "adapter_id": 1, + "os_id": 1 + }, + "partition": { + "/var": { + "percentage": 30, + "max_size": "10G" + }, + "/usr": { + "percentage": 30, + "max_size": "20G" + } + }, + "interface": { + "eth0": { + "subnet_id": 1, + "is_mgmt": true, + "is_promiscuous": false + }, + "eth1": { + "subnet_id": 2, + "is_mgmt": false, + "is_promiscuous": true + }, + "eth2": { + "subnet_id": 1, + "is_mgmt": false, + "is_promiscuous": false + }, + "eth3": { + "subnet_id": 2, + "is_mgmt": false, + "is_promiscuous": false + } + }, + "general": { + "timezone": "America/Los_Angeles", + "language": "en", + "http_proxy": "", + "https_proxy": "", + "no_proxy": [""], + "ntp_server": "", + "dns_servers": [""], + "search_path": ["ods.com"], + "domain": "ods.com", + "default_gateway": "10.145.88.1", + "local_repo": "" + }, + "server_credentials": { + "username": "", + "password": "" + } + }, + "ceph_firefly": { + "cluster": { + "id": 1, + "name": "demo", + "adapter_id": 1, + "os_id": 1 + }, + "partition": { + "/var": { + "percentage": 30, + "max_size": "10G" + }, + "/usr": { + "percentage": 30, + "max_size": "20G" + } + }, + "interface": { + "eth0": { + "subnet_id": 1, + "is_mgmt": true, + "is_promiscuous": false + }, + "eth1": { + "subnet_id": 2, + "is_mgmt": false, + "is_promiscuous": true + }, + "eth2": { + "subnet_id": 1, + "is_mgmt": false, + "is_promiscuous": false + }, + "eth3": { + "subnet_id": 2, + "is_mgmt": false, + "is_promiscuous": false + } + }, + "general": { + "timezone": "America/Los_Angeles", + "language": "en", + "http_proxy": "", + "https_proxy": "", + "no_proxy": [""], + "ntp_server": "", + "dns_servers": [""], + "search_path": ["ods.com"], + "domain": "ods.com", + "default_gateway": "10.145.88.1", + "local_repo": "" + }, + "server_credentials": { + "username": "", + "password": "" + }, + "service_credentials": { + "rabbitmq": { + "username": "guest", + "password": "guest" + }, + "compute": { + "username": "nova", + "password": "nova" + }, + "dashboard": { + "username": "dashboard", + "password": "dashboard" + }, + "identity": { + "username": "keystone", + "password": "keystone" + }, + "image": { + "username": "glance", + "password": "glance" + }, + "metering": { + "username": "ceilometer", + "password": "ceilometer" + }, + "mysql": { + "username": "root", + "password": "root" + }, + "volume": { + "username": "cinder", + "password": "cinder" + } + }, + "console_credentials": { + "admin": { + "username": "admin", + "password": "admin" + }, + "compute": { + "username": "nova", + "password": "nova" + }, + "dashboard": { + "username": "dashboard", + "password": "dashboard" + }, + "image": { + "username": "glance", + "password": "glance" + }, + "metering": { + "username": "ceilometer", + "password": "ceilometer" + }, + "network": { + "username": "quantum", + "password": "quantum" + }, + "object-store": { + "username": "swift", + "password": "swift" + }, + "volume": { + "username": "cinder", + "password": "cinder" + } + }, + "network_mapping": { + "public_network": "", + "cluster_network": "" + }, + "ceph_config": { + "global_config": { + "osd_pool_pg_num": "1024", + "osd_pool_pgp_num": "1024", + "osd_pool_size": "3" + }, + "osd_config": { + "journal_size": "10000", + "op_threads": 10 + } + } + } +} \ No newline at end of file diff --git a/v2.5/data/wizard_steps.json b/v2.5/data/wizard_steps.json index 68857f0..67af395 100644 --- a/v2.5/data/wizard_steps.json +++ b/v2.5/data/wizard_steps.json @@ -15,39 +15,39 @@ "description": "" }, { "id": 3, - "name": "network", - "title": "Network", - "state": "", - "template": "src/app/partials/network.tpl.html", - "description": "" - }, { - "id": 4, "name": "partition", "title": "Partition", "state": "", "template": "src/app/partials/partition.tpl.html", "description": "" + }, { + "id": 4, + "name": "network", + "title": "Network", + "state": "", + "template": "src/app/partials/network.tpl.html", + "description": "" }, { "id": 5, + "name": "network_mapping", + "title": "Network Mapping", + "state": "", + "template": "src/app/partials/network_mapping.tpl.html", + "description": "" + }, { + "id": 6, "name": "package_config", "title": "Target System Config", "state": "", "template": "src/app/partials/package_config.tpl.html", "description": "" }, { - "id": 6, + "id": 7, "name": "role_assign", "title": "Role Assignment", "state": "", "template": "src/app/partials/role_assignment.tpl.html", "description": "" - }, { - "id": 7, - "name": "network_mapping", - "title": "Network Mapping", - "state": "", - "template": "src/app/partials/network_mapping.tpl.html", - "description": "" }, { "id": 8, "name": "review", diff --git a/v2.5/src/app/app.coffee b/v2.5/src/app/app.coffee old mode 100755 new mode 100644 index 8a54333..0adf45c --- a/v2.5/src/app/app.coffee +++ b/v2.5/src/app/app.coffee @@ -1,6 +1,7 @@ define(['angular' 'uiRouter' 'angularTable' + 'angularCookies' 'uiBootstrap' 'angularDragDrop' 'app/controllers/all' @@ -16,6 +17,7 @@ define(['angular' 'ngTable' 'ui.bootstrap' 'ngDragDrop' + 'ngCookies' 'compass.controllers' 'compass.services' 'compass.factories' @@ -47,21 +49,21 @@ define(['angular' controller: 'wizardCtrl' templateUrl: 'src/app/partials/wizard.tpl.html' requireAuthenticated: true - resolve: + resolve: clusterData: ['$stateParams', '$q', 'wizardService', ($stateParams, $q, wizardService) -> clusterId = $stateParams.id deferred = $q.defer() wizardService.getClusterById(clusterId).success (data) -> deferred.resolve(data) - + return deferred.promise; ] - machinesHostsData: ['$q', 'wizardService', ($q, wizardService) -> + machinesHostsData: ['$q', 'wizardService', ($q, wizardService) -> deferred = $q.defer() wizardService.getAllMachineHosts().success (data) -> deferred.resolve(data) - + return deferred.promise ] wizardStepsData: ['$q', 'wizardService', ($q, wizardService) -> # get the create-cluster-wizard steps @@ -71,7 +73,7 @@ define(['angular' ); return deferred.promise ] - clusterConfigData: ['$stateParams', '$q', 'wizardService', ($stateParams, $q, wizardService) -> + clusterConfigData: ['$stateParams', '$q', 'wizardService', ($stateParams, $q, wizardService) -> clusterId = $stateParams.id deferred = $q.defer() wizardService.getClusterConfig(clusterId).success((data) -> @@ -172,4 +174,4 @@ define(['angular' $state.transitionTo("login") event.preventDefault() ] -) \ No newline at end of file +) diff --git a/v2.5/src/app/controllers/all.coffee b/v2.5/src/app/controllers/all.coffee old mode 100755 new mode 100644 diff --git a/v2.5/src/app/controllers/baseController.coffee b/v2.5/src/app/controllers/baseController.coffee old mode 100755 new mode 100644 diff --git a/v2.5/src/app/controllers/wizardController.coffee b/v2.5/src/app/controllers/wizardController.coffee index 83fccf8..5f2c012 100644 --- a/v2.5/src/app/controllers/wizardController.coffee +++ b/v2.5/src/app/controllers/wizardController.coffee @@ -1,4 +1,4 @@ -define(['./baseController'], ()-> +define(['./baseController'], ()-> 'use strict'; angular.module('compass.controllers') @@ -44,7 +44,7 @@ define(['./baseController'], ()-> $scope.server_columns = data.showall wizardService.displayDataInTable($scope, $scope.allservers) - + wizardService.watchingTriggeredStep($scope) $scope.hideUnselected = -> @@ -52,7 +52,7 @@ define(['./baseController'], ()-> $scope.ifPreSelect = (server) -> server.disable = false - if server.clusters + if server.clusters server.disabled = true if server.clusters.length > 0 for svCluster in server.clusters if svCluster.id == $scope.cluster.id @@ -89,7 +89,7 @@ define(['./baseController'], ()-> wizardService.watchAndAddNewServers($scope) $scope.commit = (sendRequest) -> - wizardService.svSelectonCommit($scope) + wizardService.svSelectonCommit($scope) ] .controller 'globalCtrl', ['$scope', 'wizardService', '$q', ($scope, wizardService, $q) -> @@ -106,8 +106,8 @@ define(['./baseController'], ()-> $scope.commit = (sendRequest) -> wizardService.globalCommit($scope,sendRequest) ] - .controller 'networkCtrl', ['$scope', 'wizardService', 'ngTableParams', '$filter', '$modal', '$timeout' - ($scope, wizardService, ngTableParams, $filter, $modal, $timeout) -> + .controller 'networkCtrl', ['$rootScope', '$scope', 'wizardService', 'ngTableParams', '$filter', '$modal', '$timeout', '$cookieStore', + ($rootScope, $scope, wizardService, ngTableParams, $filter, $modal, $timeout, $cookieStore) -> wizardService.networkInit($scope) wizardService.watchingTriggeredStep($scope) @@ -139,6 +139,16 @@ define(['./baseController'], ()-> delete $scope.interfaces[delInterface] delete sv.networks[delInterface] for sv in $scope.servers + $scope.selectAsInstallInterface = (evt, name) -> + checkbox = evt.target + if !checkbox.checked + return + + for n of $scope.interfaces + if n != name + $scope.interfaces[n].is_mgmt = false + return + $scope.openAddSubnetModal = -> modalInstance = $modal.open( templateUrl: "src/app/partials/modalAddSubnet.tpl.html" @@ -157,6 +167,15 @@ define(['./baseController'], ()-> ) $scope.commit = (sendRequest) -> + installInterface = {}; # the physical interface to install os + $rootScope.networkMappingInterfaces = {}; # the interface name are needed to map openstack componets + for name, value of $scope.interfaces + if value.is_mgmt + installInterface[name] = value + else + $rootScope.networkMappingInterfaces[name] = value + $scope.interfaces = installInterface # only need to store install interface + $cookieStore.put('networkMappingInterfaces', $rootScope.networkMappingInterfaces) wizardService.networkCommit($scope, sendRequest) # display data in the table @@ -164,6 +183,10 @@ define(['./baseController'], ()-> $scope.servers = data if $scope.servers[0].networks and Object.keys($scope.servers[0].networks).length != 0 $scope.interfaces = $scope.servers[0].networks + # retrive saved network mapping interfaces + savedNetworkMappingInterfaces = $cookieStore.get('networkMappingInterfaces'); + for name, value of savedNetworkMappingInterfaces + $scope.interfaces[name] = value wizardService.setInterfaces($scope.interfaces) wizardService.displayDataInTable($scope, $scope.servers) @@ -284,6 +307,151 @@ define(['./baseController'], ()-> wizardService.networkMappingInit($scope) wizardService.watchingTriggeredStep($scope) + $scope.nics = { + external: 'eth1', + mgmt: 'eth1', + storage: 'eth1' + }; + + $scope.vlanTags = { + mgmt: '101', + storage: '102' + }; + + $scope.ips = { + mgmt: { + start: '172.16.1.10', + end: '172.16.1.255', + cidr: '127.16.1.0/24', + internal_vip: '172.16.1.222' + }, + external: { + start: '10.145.250.10', + end: '10.145.250.255', + cidr: '10.145.250.0/24', + gw_ip: '10.145.250.1', + public_vip: '10.145.250.221' + }, + storage: { + start: '172.16.2.10', + end: '172.16.2.255', + cidr: '172.16.2.0/24' + }, + ha_proxy: { + vip: '10.1.0.222' + } + }; + + configureNeutronCfg = -> + neutronCfg = { + 'openvswitch': { + 'tenant_network_type': 'vxlan', + 'network_vlan_ranges': ['physnet:1:4094'], + 'bridge_mappings': ['physnet:br-prv'] + } + } + return neutronCfg + + configureNetworkCfg = -> + #configure the packageConfig.network_cfg + networkCfg = { + 'bond_mappings': [], + 'sys_intf_mappings': [{ + 'interface': $scope.nics.mgmt, + 'role': ['controller', 'compute'], + 'vlan_tag': $scope.vlanTags.mgmt, + 'type': 'vlan', + 'name': 'mgmt' + }, { + 'interface': $scope.nics.storage, + 'role': ['controller', 'compute'], + 'vlan_tag': $scope.vlanTags.storage, + 'type': 'vlan', + 'name': 'storage' + }, { + 'interface': 'br-prv', + 'role': ['controller', 'compute'], + 'type': 'ovs', + 'name': 'external' + }], + 'nic_mappings': [], + 'public_net_info': { + 'no_gateway': 'False', + 'external_gw': $scope.ips.external.ip, + 'enable': 'False', + 'floating_ip_cidr': $scope.ips.external.cidr, + 'floating_ip_start': $scope.ips.external.start, + 'floating_ip_end': $scope.ips.external.end, + 'provider_network': 'physnet', + 'subnet': 'ext-subnet', + 'network': 'ext-net', + 'enable_dhcp': 'False', + 'segment_id': 1000, + 'router': 'router-ext', + 'type': 'vlan' + }, + 'internal_vip': { + 'interface': 'mgmt', + 'ip': $scope.ips.mgmt.internal_vip, + 'netmask': wizardService.getNetMaskFromCIDR($scope.ips.mgmt.cidr) + }, + 'public_vip': { + 'interface': 'external', + 'ip': $scope.ips.external.public_vip, + 'netmask': wizardService.getNetMaskFromCIDR($scope.ips.external.cidr) + }, + 'provider_net_mappings': [{ + 'interface': $scope.interfaces.external, + 'role': ['controller', 'compute'], + 'type': 'ovs', + 'name': 'br-prv', + 'network': 'physnet' + }], + 'ip_settings': [{ + 'cidr': $scope.ips.mgmt.cidr, + 'role': ['controller', 'compute'], + 'name': 'mgmt', + 'ip_ranges': [[$scope.ips.mgmt.start, $scope.ips.mgmt.end]] + }, { + 'cidr': $scope.ips.storage.cidr, + 'role': ['controller', 'compute'], + 'name': 'storage', + 'ip_ranges': [[$scope.ips.storage.start, $scope.ips.storage.end]] + }, { + 'gw': $scope.ips.external.gw_ip, + 'cidr': $scope.ips.external.cidr, + 'role': ['controller', 'compute'], + 'name': 'external', + 'ip_ranges': [[$scope.ips.external.start, $scope.ips.external.end]] + }] + } + return networkCfg + + configureNetworkMapping = -> + installNic = {} + nicName = '' + # somehow the interfaces are stored from previous step + # use it to configure the install network for networkMapping + for nic, value of $scope.interfaces + installNic = value if value.is_mgmt + nicName = nic if value.is_mgmt + $scope.networkMapping = { + 'install': { + 'interface': nicName, + 'subnet': installNic.subnet + } + } + return + + configureHAProxyCfg = -> + haCfg = { + 'vip': $scope.ips.ha_proxy.vip + } + return haCfg + + # locate the install network, it is used to setup networkMapping and HAProxy + configureNetworkMapping() + $scope.onDrop = ($event, key) -> $scope.pendingInterface = key @@ -291,14 +459,18 @@ define(['./baseController'], ()-> dict[key].mapping_interface = $scope.pendingInterface $scope.commit = (sendRequest) -> - wizardService.networkMappingCommit($scope, sendRequest) + networkCfg = configureNetworkCfg() + neutronCfg = configureNeutronCfg() + haCfg = configureHAProxyCfg() + wizardService.networkMappingCommit($scope, networkCfg, $scope.networkMapping, + neutronCfg, haCfg, sendRequest) ] .controller 'reviewCtrl', ['$scope', 'wizardService', 'ngTableParams', '$filter', '$location', '$anchorScroll' ($scope, wizardService, ngTableParams, $filter, $location, $anchorScroll) -> wizardService.reviewInit($scope) wizardService.watchingTriggeredStep($scope) - $scope.scrollTo = (id) -> + $scope.scrollTo = (id) -> old = $location.hash(); $location.hash(id); $anchorScroll(); diff --git a/v2.5/src/app/directives/all.coffee b/v2.5/src/app/directives/all.coffee old mode 100755 new mode 100644 diff --git a/v2.5/src/app/directives/baseDirective.coffee b/v2.5/src/app/directives/baseDirective.coffee old mode 100755 new mode 100644 diff --git a/v2.5/src/app/factory/all.coffee b/v2.5/src/app/factory/all.coffee old mode 100755 new mode 100644 diff --git a/v2.5/src/app/factory/baseFactory.coffee b/v2.5/src/app/factory/baseFactory.coffee old mode 100755 new mode 100644 diff --git a/v2.5/src/app/partials/cluster-config.tpl.html b/v2.5/src/app/partials/cluster-config.tpl.html old mode 100755 new mode 100644 diff --git a/v2.5/src/app/partials/cluster-nav.tpl.html b/v2.5/src/app/partials/cluster-nav.tpl.html old mode 100755 new mode 100644 diff --git a/v2.5/src/app/partials/cluster-network.tpl.html b/v2.5/src/app/partials/cluster-network.tpl.html old mode 100755 new mode 100644 diff --git a/v2.5/src/app/partials/cluster-overview.tpl.html b/v2.5/src/app/partials/cluster-overview.tpl.html old mode 100755 new mode 100644 diff --git a/v2.5/src/app/partials/cluster-partition.tpl.html b/v2.5/src/app/partials/cluster-partition.tpl.html old mode 100755 new mode 100644 diff --git a/v2.5/src/app/partials/cluster-roles.tpl.html b/v2.5/src/app/partials/cluster-roles.tpl.html old mode 100755 new mode 100644 diff --git a/v2.5/src/app/partials/cluster-security.tpl.html b/v2.5/src/app/partials/cluster-security.tpl.html old mode 100755 new mode 100644 diff --git a/v2.5/src/app/partials/cluster.tpl.html b/v2.5/src/app/partials/cluster.tpl.html old mode 100755 new mode 100644 diff --git a/v2.5/src/app/partials/find-new-servers.tpl.html b/v2.5/src/app/partials/find-new-servers.tpl.html old mode 100755 new mode 100644 diff --git a/v2.5/src/app/partials/network.tpl.html b/v2.5/src/app/partials/network.tpl.html index 92772f7..3718680 100644 --- a/v2.5/src/app/partials/network.tpl.html +++ b/v2.5/src/app/partials/network.tpl.html @@ -1,218 +1,216 @@
-
-
- - - -
-
-
-

- Autofill IP Address for Each Interface - - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ActionInterfaceIs Mgmt NetworkPromisc ModeSubnetAutofill Rules
- - - - - - - -
- - - - - - {{interface_name}} - - - - - - - - - -
-

Autofill Hostname

- - - -
- -
-
-
-
-
-
-
-
- - - - - - -
- - -
-
-
- -
-
- {{alert.msg}} -
-
- +
+
+ + + +
+
+
+

+ Autofill IP Address for Each Interface + + +

+
- - - - + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + -
-
{{column.title}}
-
- {{name}} - - - -
ActionInterfaceIs OS Install NetworkPromisc ModeSubnetAutofill Rules
- - - - - - - - - - - - - - - - {{cluster.name}}  - - - - {{server[column.field]}} - - - - -
+ + + + + +
+ + + + + {{interface_name}} + + + + + + + + + + + +
+

Autofill Hostname

+ + +
+ +
+
+
+
- + +
+
+ + + + + + +
+ + +
+
+
+ +
+
+ {{alert.msg}} +
+
+ + + + + + + + + + + + + + + +
+
{{column.title}}
+
+ {{name}} + + + +
+ + + + + + + + + - + + + + {{cluster.name}}  + + + {{server[column.field]}} + + + +
+
- diff --git a/v2.5/src/app/partials/network_mapping.tpl.html b/v2.5/src/app/partials/network_mapping.tpl.html index 9c5b96d..a32ec75 100644 --- a/v2.5/src/app/partials/network_mapping.tpl.html +++ b/v2.5/src/app/partials/network_mapping.tpl.html @@ -1,4 +1,113 @@
+
+
+
+
+

+ Allocate IP Address for Each Network Interface +

+ + + + + + + + + + + + + + + + + + + + + +
NetworkNICCIDRStart IPEnd IPVlan Configuration
+ + {{network_key}} + + + + + + + + + + + + Public Virtual IP + + + + Gateway IP + + + + Internal Virtual IP + + + + Vlan Tag + + +
+
+
+
+

+ HA Proxy +

+ + + + + + + + + + + + + + + +
NetworkNICIP Address
+ + install + + {{networkMapping.install.interface}} + +
+
+
+
+
+
+ + diff --git a/v2.5/src/app/partials/network_mapping.tpl.html-old b/v2.5/src/app/partials/network_mapping.tpl.html-old new file mode 100644 index 0000000..9c5b96d --- /dev/null +++ b/v2.5/src/app/partials/network_mapping.tpl.html-old @@ -0,0 +1,51 @@ +
+
+
+
+
+

Interfaces

+
+
+
+
+ {{interface_key}} + + (Promisc) + + + (Management) + +
+
+ + {{network_key}} +
+
+
+
+
+
+
+
+ +
+
+
+

Networks

+
+
+

Use drag and drop to move logical networks between physical interfaces. (Interface assigned Promisc Mode can only map with External network)

+
+
+
+
+ + {{key}} +
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/v2.5/src/app/partials/progressbar.tpl.html b/v2.5/src/app/partials/progressbar.tpl.html old mode 100755 new mode 100644 diff --git a/v2.5/src/app/partials/server-list.tpl.html b/v2.5/src/app/partials/server-list.tpl.html old mode 100755 new mode 100644 diff --git a/v2.5/src/app/partials/topnav.tpl.html b/v2.5/src/app/partials/topnav.tpl.html index fce3fde..6a4ae24 100644 --- a/v2.5/src/app/partials/topnav.tpl.html +++ b/v2.5/src/app/partials/topnav.tpl.html @@ -1,14 +1,14 @@