733 lines
41 KiB
HTML
733 lines
41 KiB
HTML
<div ng-controller="reviewCtrl" data-spy="scroll" data-target="#side-nav">
|
|
|
|
<div id="side-nav">
|
|
<ul class="nav nav-list affix" id="myTab">
|
|
<li>
|
|
<a ng-click="scrollTo('osconfig')">
|
|
<i class="green ace-icon fa fa-globe bigger-110"></i> OS Config
|
|
</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a ng-click="scrollTo('hosts')">
|
|
<i class="blue ace-icon fa fa-list bigger-110"></i> Host
|
|
</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a ng-click="scrollTo('targetconfig')">
|
|
<i class="purple ace-icon fa fa-lock"></i> Target Config
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div style="margin-left: 180px;">
|
|
|
|
<div id="osconfig">
|
|
<div class="widget-box transparent margin-top-minus10" style="border-color:#CCC">
|
|
<div class="widget-header widget-header-flat">
|
|
<h4 class="widget-title lighter green">
|
|
OS Config
|
|
</h4>
|
|
</div>
|
|
|
|
<div class="widget-body">
|
|
<div class="widget-body-inner" style="display: block;">
|
|
<div class="widget-main review-padding">
|
|
<div class="widget-header widget-header-flat review-osconfig">
|
|
<h5 class="widget-title white" ng-click="returnStep('os_global')">
|
|
OS Global Configurations
|
|
</h5>
|
|
</div>
|
|
<table class="table table-striped table-border-grey">
|
|
<tbody>
|
|
<tr ng-repeat="(key, value) in os_global_config.general">
|
|
<td class="table-review-padding"><strong>{{key}}</strong>
|
|
</td>
|
|
<td>{{value}}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="table-review-padding"><strong>Server Credentials</strong>
|
|
</td>
|
|
<td></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="table-review-padding"><strong>Username</strong>
|
|
</td>
|
|
<td>{{os_global_config.server_credentials.username}}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="table-review-padding"><strong>Password</strong>
|
|
</td>
|
|
<td>{{os_global_config.server_credentials.password}}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<br>
|
|
<br>
|
|
<div class="widget-header widget-header-flat review-osconfig">
|
|
<h5 class="widget-title white" ng-click="returnStep('partition')">
|
|
Partition
|
|
</h5>
|
|
</div>
|
|
<table class="table table-striped table-border-grey">
|
|
<thead>
|
|
<tr>
|
|
<th>Mount Point</th>
|
|
<th>Size Percentage (%)</th>
|
|
<th>Max Size (G)</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr ng-repeat="(key, value) in partition">
|
|
<td class="table-review-padding">{{key}}</td>
|
|
<td>{{value.percentage}}</td>
|
|
<td>{{value.max_size}}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<br>
|
|
<div id="hosts">
|
|
<div class="widget-box transparent margin-top-minus10" style="border-color:#CCC">
|
|
<div class="widget-header widget-header-flat">
|
|
<h4 class="widget-title lighter blue">
|
|
Host
|
|
</h4>
|
|
</div>
|
|
|
|
<div class="widget-body">
|
|
<div class="widget-body">
|
|
<div class="widget-body-inner" style="display: block;">
|
|
<div class="widget-main review-padding">
|
|
<div class="widget-header widget-header-flat review-host">
|
|
<h5 class="widget-title white" ng-click="returnStep('role_assign')">
|
|
Hosts
|
|
</h5>
|
|
</div>
|
|
<table ng-table="tableParams" class="table table-striped table-border-grey">
|
|
<thead>
|
|
<tr>
|
|
<th ng-repeat="column in server_columns" ng-show="column.visible" class="sortable" ng-class="{'sort-asc': tableParams.isSortBy(column.field, 'asc'),
|
|
'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'">
|
|
<div>{{column.title}}</div>
|
|
</th>
|
|
<th>
|
|
</th>
|
|
<th ng-repeat="(key, value) in interfaces" ng-show="value.is_mgmt">
|
|
{{key}}
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr ng-repeat="server in $data | filter: search">
|
|
<td ng-repeat="column in server_columns" ng-show="column.visible" sortable="column.field">
|
|
<span ng-switch on="column.field">
|
|
<span ng-switch-when="os_installed">
|
|
<span ng-if="server['os']">
|
|
<label>
|
|
<input ng-model="server.reinstallos" type="checkbox" class="ace">
|
|
<span class="lbl"></span>
|
|
</label>
|
|
</span>
|
|
<span ng-if="!server['os']">
|
|
-
|
|
</span>
|
|
</span>
|
|
<span ng-switch-when="clusters">
|
|
<span ng-repeat="cluster in server.clusters">
|
|
{{cluster.name}}
|
|
</span>
|
|
</span>
|
|
<!-- <span ng-switch-when="roles">
|
|
<span ng-repeat="role in server['roles']" class="role-badge" ng-style="{'background-color': role.color}">
|
|
{{role.display_name}}
|
|
</span>
|
|
</span> -->
|
|
<span ng-switch-default ng-if="column.field!='roles'">
|
|
{{server[column.field]}}
|
|
</span>
|
|
</span>
|
|
</td>
|
|
<td ng-repeat="(key, value) in interfaces" ng-show="value.is_mgmt">
|
|
{{server.networks[key].ip}}
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<br>
|
|
<br>
|
|
<div class="widget-header widget-header-flat review-host">
|
|
<h5 class="widget-title white" ng-click="returnStep('role_assign')">
|
|
Roles
|
|
</h5>
|
|
</div>
|
|
<table class="table table-striped table-border-grey">
|
|
<thead>
|
|
<tr>
|
|
<th>Hostname</th>
|
|
<th>Roles</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr ng-repeat="server in servers">
|
|
<td>
|
|
{{server.hostname}}
|
|
</td>
|
|
<td>
|
|
<span ng-repeat="role in server['roles']" class="role-badge" ng-style="{'background-color': role.color}">
|
|
{{role.display_name}}
|
|
</span>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<br>
|
|
<div id="targetconfig">
|
|
<div class="widget-box transparent margin-top-minus10" style="border-color:#CCC">
|
|
<div class="widget-header widget-header-flat">
|
|
<h4 class="widget-title lighter purple" ng-click="returnStep('network_mapping')">
|
|
Target Config
|
|
</h4>
|
|
</div>
|
|
|
|
<div class="widget-body">
|
|
|
|
<div class="widget-body">
|
|
<div class="widget-body-inner" style="display: block;">
|
|
<div class="widget-main review-padding" collapse="isMappingCollapsed">
|
|
<div class="widget-header widget-header-flat review-targetconfig">
|
|
<h5 class="widget-title white" ng-click="returnStep('network_mapping')">
|
|
OS Installation Network
|
|
</h5>
|
|
</div>
|
|
<table class="table table-striped table-border-grey">
|
|
<tbody>
|
|
<tr ng-repeat="(key, value) in packageConfig['network_mapping'].install">
|
|
<td>{{key}}</td>
|
|
<td>{{value}}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<br/>
|
|
<br/>
|
|
<div class="widget-header widget-header-flat review-targetconfig">
|
|
<h5 class="widget-title white" ng-click="returnStep('security')">
|
|
IP Settings
|
|
</h5>
|
|
</div>
|
|
<table class="table table-striped table-border-grey">
|
|
<thead>
|
|
<tr>
|
|
<th>Name</th>
|
|
<th>CIDR</th>
|
|
<th>IP Range</th>
|
|
<th>Role</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr ng-repeat="ip in packageConfig['network_cfg']['ip_settings']">
|
|
<td>{{ip.name}}</td>
|
|
<td>{{ip.cidr}}</td>
|
|
<td>{{ip.ip_ranges[0].join(' --- ')}}</td>
|
|
<td>{{ip.role.join(', ')}}
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<br/>
|
|
<br/>
|
|
<div class="widget-header widget-header-flat review-targetconfig">
|
|
<h5 class="widget-title white" ng-click="returnStep('security')">
|
|
sys_intf_mappings
|
|
</h5>
|
|
</div>
|
|
<table class="table table-striped table-border-grey">
|
|
<thead>
|
|
<tr>
|
|
<th>Name</th>
|
|
<th>Interface</th>
|
|
<th>Type</th>
|
|
<th>Role</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr ng-repeat="ip in packageConfig['network_cfg']['sys_intf_mappings']">
|
|
<td>{{ip.name}}</td>
|
|
<td>{{ip.interface}}</td>
|
|
<td>{{ip.type}} {{ip.vlan_tag}}</td>
|
|
<td>{{ip.role.join(', ')}}
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<br/>
|
|
<br/>
|
|
<div class="widget-header widget-header-flat review-targetconfig">
|
|
<h5 class="widget-title white" ng-click="returnStep('security')">
|
|
Virtual IPs
|
|
</h5>
|
|
</div>
|
|
<table class="table table-striped table-border-grey">
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Interface</th>
|
|
<th>IP</th>
|
|
<th>Netmask</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>Interal</td>
|
|
<td>{{packageConfig['network_cfg']['internal_vip'].interface}}</td>
|
|
<td>{{packageConfig['network_cfg']['internal_vip'].ip}}</td>
|
|
<td>{{packageConfig['network_cfg']['internal_vip'].netmask}}</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Public</td>
|
|
<td>{{packageConfig['network_cfg']['public_vip'].interface}}</td>
|
|
<td>{{packageConfig['network_cfg']['public_vip'].ip}}</td>
|
|
<td>{{packageConfig['network_cfg']['public_vip'].netmask}}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<br/>
|
|
<br/>
|
|
<div class="widget-header widget-header-flat review-targetconfig">
|
|
<h5 class="widget-title white" ng-click="returnStep('security')">
|
|
Network Mapping
|
|
</h5>
|
|
</div>
|
|
<table class="table table-striped table-border-grey">
|
|
<tbody>
|
|
<tr>
|
|
<td class="table-review-padding"><strong>provider_net_mappings</strong>
|
|
</td>
|
|
<td></td>
|
|
</tr>
|
|
<tr ng-repeat="(key, value) in packageConfig['network_cfg'].provider_net_mappings[0]">
|
|
<td class="capitalize">
|
|
<div>
|
|
{{key}}
|
|
</div>
|
|
</td>
|
|
<td>{{value}}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<table class="table table-striped table-border-grey">
|
|
<tbody>
|
|
<tr>
|
|
<td class="table-review-padding"><strong>public_net_info</strong>
|
|
</td>
|
|
<td></td>
|
|
</tr>
|
|
<tr ng-repeat="(key, value) in packageConfig['network_cfg'].public_net_info">
|
|
<td class="capitalize">
|
|
<div>
|
|
{{key}}
|
|
</div>
|
|
</td>
|
|
<td>{{value}}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<br>
|
|
<br>
|
|
<div class="widget-header widget-header-flat review-targetconfig">
|
|
<h5 class="widget-title white" ng-click="returnStep('security')">
|
|
Target System Configurations - NeutronConfig
|
|
</h5>
|
|
</div>
|
|
<table class="table table-striped table-border-grey">
|
|
<tbody>
|
|
<tr>
|
|
<td>tenent_network_type</td>
|
|
<td>{{packageConfig.neutron_config.openvswitch.tenant_network_type}}</td>
|
|
</tr>
|
|
<tr ng-if="neutronConfig.openvswitch.tenant_network_type=='gre'" ng-repeat="(key, value) in neutronConfig.openvswitch.tunnel_id_ranges">
|
|
<td>tunnel_id_ranges_{{key}}</td>
|
|
<td>{{value}}</td>
|
|
</tr>
|
|
<tr ng-if="neutronConfig.openvswitch.tenant_network_type=='vlan'" ng-repeat="(key, value) in neutronConfig.openvswitch.vlan_ranges">
|
|
<td>network_vlan_ranges_{{key}}</td>
|
|
<td>{{value}}</td>
|
|
</tr>
|
|
<tr ng-if="packageConfig.neutron_config.openvswitch.tenant_network_type=='vxlan'" ng-repeat="(key, value) in packageConfig.neutron_config.openvswitch.network_vlan_ranges">
|
|
<td>network_vlan_ranges_{{key}}</td>
|
|
<td>{{value}}</td>
|
|
</tr>
|
|
<tr ng-if="packageConfig.neutron_config.openvswitch.tenant_network_type=='vxlan'" ng-repeat="(key, value) in packageConfig.neutron_config.openvswitch.bridge_mappings">
|
|
<td>bridge_mappins_{{key}}</td>
|
|
<td>{{value}}</td>
|
|
</tr>
|
|
<tr ng-if="neutronConfig.openvswitch.tenant_network_type=='vlan'" ng-repeat="(key, value) in neutronConfig.openvswitch.bridge">
|
|
<td>bridge_mappins_{{key}}</td>
|
|
<td>{{value}}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<br>
|
|
<br>
|
|
<span ng-if="currentFlavor == 'HA-multinodes'">
|
|
<div class="widget-header widget-header-flat review-targetconfig">
|
|
<h5 class="widget-title white" ng-click="returnStep('security')">
|
|
Target System Configurations - High Availability Config
|
|
</h5>
|
|
</div>
|
|
<table class="table table-striped table-border-grey">
|
|
<tbody>
|
|
<tr>
|
|
<td>VIP</td>
|
|
<td>{{haConfig.ha_proxy.vip}}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<br>
|
|
<br>
|
|
</span>
|
|
<div class="widget-header widget-header-flat review-targetconfig">
|
|
<h5 class="widget-title white" ng-click="returnStep('security')">
|
|
Target System Configurations - console_credentials
|
|
</h5>
|
|
</div>
|
|
<table class="table table-striped table-border-grey">
|
|
<thead>
|
|
<tr>
|
|
<th>Service</th>
|
|
<th>Username</th>
|
|
<th>Password</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr ng-repeat="(key, value) in console_credentials">
|
|
<td>{{key}}</td>
|
|
<td>{{value.username}}</td>
|
|
<td>{{value.password}}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<br>
|
|
<br>
|
|
<div class="widget-header widget-header-flat review-targetconfig">
|
|
<h5 class="widget-title white" ng-click="returnStep('security')">
|
|
Target System Configurations - service_credentials
|
|
</h5>
|
|
</div>
|
|
<table class="table table-striped table-border-grey">
|
|
<thead>
|
|
<tr>
|
|
<th>Service</th>
|
|
<th>Username</th>
|
|
<th>Password</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr ng-repeat="(key, value) in service_credentials">
|
|
<td>{{key}}</td>
|
|
<td>{{value.username}}</td>
|
|
<td>{{value.password}}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="widget-body">
|
|
<div class="widget-body-inner" style="display: block;">
|
|
<div class="widget-main review-padding">
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- <div ng-controller="reviewCtrl">
|
|
<div class="row">
|
|
<div class="col-sm-12">
|
|
<div class="widget-box transparent margin-top-minus10">
|
|
<div class="widget-header widget-header-flat">
|
|
<h4 class="widget-title lighter" ng-click="returnStep('role_assign')">
|
|
<i class="ace-icon fa fa-list"></i>
|
|
Hosts
|
|
</h4>
|
|
<div class="widget-toolbar">
|
|
<a class="action" ng-click="isHostsCollapsed = !isHostsCollapsed">
|
|
<i class="ace-icon fa fa-chevron-up" ng-class="{'fa-chevron-up': !isHostsCollapsed, 'fa-chevron-down': isHostsCollapsed}"></i>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="widget-body">
|
|
<div class="widget-body-inner" style="display: block;">
|
|
<div class="widget-main no-padding" collapse="isHostsCollapsed">
|
|
<table ng-table="tableParams" class="table table-hover table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th ng-repeat="column in server_columns" ng-show="column.visible" class="sortable" ng-class="{'sort-asc': tableParams.isSortBy(column.field, 'asc'),
|
|
'sort-desc': tableParams.isSortBy(column.field, 'desc')}" ng-click="tableParams.sorting(column.field, tableParams.isSortBy(column.field, 'asc') ? 'desc' : 'asc')">
|
|
<div>{{column.title}}</div>
|
|
</th>
|
|
<th ng-repeat="(key, value) in interfaces">
|
|
{{key}}
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr ng-repeat="server in $data | filter: search">
|
|
<td ng-repeat="column in server_columns" ng-show="column.visible" sortable="column.field">
|
|
<span ng-switch on="column.field">
|
|
<span ng-switch-when="os_installed">
|
|
<span ng-if="server['os']">
|
|
<label>
|
|
<input ng-model="server.reinstallos" type="checkbox" class="ace">
|
|
<span class="lbl"></span>
|
|
</label>
|
|
</span>
|
|
<span ng-if="!server['os']">
|
|
-
|
|
</span>
|
|
</span>
|
|
<span ng-switch-when="clusters">
|
|
<span ng-repeat="cluster in server.clusters">
|
|
{{cluster.name}}
|
|
</span>
|
|
</span>
|
|
<span ng-switch-when="roles">
|
|
<span ng-repeat="role in server['roles']" class="role-badge" ng-style="{'background-color': role.color}">
|
|
{{role.display_name}}
|
|
</span>
|
|
</span>
|
|
<span ng-switch-default>
|
|
{{server[column.field]}}
|
|
</span>
|
|
</span>
|
|
</td>
|
|
<td ng-repeat="(key, value) in interfaces">
|
|
{{server.networks[key].ip}}
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="space-16"></div>
|
|
<div class="row">
|
|
<div class="col-sm-6">
|
|
<div class="widget-box transparent margin-top-minus10">
|
|
<div class="widget-header widget-header-flat">
|
|
<h4 class="widget-title lighter" ng-click="returnStep('network_mapping')">
|
|
<i class="ace-icon fa fa-sun-o"></i>
|
|
Network Mapping
|
|
</h4>
|
|
<div class="widget-toolbar">
|
|
<a class="action" ng-click="isMappingCollapsed = !isMappingCollapsed">
|
|
<i class="ace-icon fa fa-chevron-up" ng-class="{'fa-chevron-up': !isMappingCollapsed, 'fa-chevron-down': isMappingCollapsed}"></i>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<div class="widget-body">
|
|
<div class="widget-body-inner" style="display: block;">
|
|
<div class="widget-main no-padding" collapse="isMappingCollapsed">
|
|
<table class="table table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th>Network</th>
|
|
<th>Interface</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr ng-repeat="(key, value) in network_mapping">
|
|
<td class="capitalize">{{key}}</td>
|
|
<td>{{value}}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-6">
|
|
<div class="widget-box transparent margin-top-minus10">
|
|
<div class="widget-header widget-header-flat">
|
|
<h4 class="widget-title lighter" ng-click="returnStep('partition')">
|
|
<i class="ace-icon fa fa-hdd-o"></i>
|
|
Partition
|
|
</h4>
|
|
<div class="widget-toolbar">
|
|
<a class="action" ng-click="isPartitionCollapsed = !isPartitionCollapsed">
|
|
<i class="ace-icon fa fa-chevron-up" ng-class="{'fa-chevron-up': !isPartitionCollapsed, 'fa-chevron-down': isPartitionCollapsed}"></i>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<div class="widget-body">
|
|
<div class="widget-body-inner" style="display: block;">
|
|
<div class="widget-main no-padding" collapse="isPartitionCollapsed">
|
|
<table class="table table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th>Mount Point</th>
|
|
<th>Size Percentage (%)</th>
|
|
<th>Max Size (G)</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr ng-repeat="(key, value) in partition">
|
|
<td>{{key}}</td>
|
|
<td>{{value.percentage}}</td>
|
|
<td>{{value.max_size}}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="space-16"></div>
|
|
<div class="row">
|
|
<div class="col-sm-6">
|
|
<div class="widget-box transparent margin-top-minus10">
|
|
<div class="widget-header widget-header-flat">
|
|
<h4 class="widget-title lighter" ng-click="returnStep('os_global')">
|
|
<i class="ace-icon fa fa-globe"></i>
|
|
OS Global Configurations
|
|
</h4>
|
|
<div class="widget-toolbar">
|
|
<a class="action" ng-click="isConfigCollapsed = !isConfigCollapsed">
|
|
<i class="ace-icon fa fa-chevron-up" ng-class="{'fa-chevron-up': !isConfigCollapsed, 'fa-chevron-down': isConfigCollapsed}"></i>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<div class="widget-body">
|
|
<div class="widget-body-inner" style="display: block;">
|
|
<div class="widget-main no-padding" collapse="isConfigCollapsed">
|
|
<table class="table table-striped">
|
|
<tbody>
|
|
<tr ng-repeat="(key, value) in global_config">
|
|
<td>{{key}}</td>
|
|
<td>{{value}}</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Server Credentials</td>
|
|
<td></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Username</td>
|
|
<td>{{server_credentials.username}}</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Password</td>
|
|
<td>{{server_credentials.password}}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-6">
|
|
<div class="widget-box transparent margin-top-minus10">
|
|
<div class="widget-header widget-header-flat">
|
|
<h4 class="widget-title lighter" ng-click="returnStep('security')">
|
|
<i class="ace-icon fa fa-lock"></i>
|
|
Target System Configurations
|
|
</h4>
|
|
<div class="widget-toolbar no-border">
|
|
<ul class="nav nav-tabs">
|
|
<li ng-repeat="tab in tabs" ng-class="{active:isActiveTab(tab.url)}" ng-click="onClickTab(tab)">
|
|
<a href>{{tab.title}}</a>
|
|
</li>
|
|
<a class="action margin-right-5" ng-click="isCredCollapsed = !isCredCollapsed">
|
|
<i class="ace-icon fa fa-chevron-up" ng-class="{'fa-chevron-up': !isCredCollapsed, 'fa-chevron-down': isCredCollapsed}"></i>
|
|
</a>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div class="widget-body">
|
|
<div class="widget-body-inner" style="display: block;">
|
|
<div collapse="isCredCollapsed" class="widget-main no-padding">
|
|
<div ng-include="currentTab"></div>
|
|
<script type="text/ng-template" id="service.tpl.html">
|
|
<table class="table table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th>Service</th>
|
|
<th>Username</th>
|
|
<th>Password</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr ng-repeat="(key, value) in service_credentials">
|
|
<td>{{key}}</td>
|
|
<td>{{value.username}}</td>
|
|
<td>{{value.password}}</td >
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</script>
|
|
<script type="text/ng-template" id="console.tpl.html">
|
|
<table class="table table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th>Service</th>
|
|
<th>Username</th>
|
|
<th>Password</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr ng-repeat="(key, value) in console_credentials">
|
|
<td>{{key}}</td >
|
|
<td>{{value.username}}</td>
|
|
<td>{{value.password}}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</script>
|
|
<script type="text/ng-template" id="ceph.tpl.html">
|
|
<table class="table table-striped">
|
|
<tbody>
|
|
<tr ng-repeat="(key, value) in cephConfig.global_config">
|
|
<td>{{key}}</td>
|
|
<td>{{value}}</td>
|
|
</tr>
|
|
<tr ng-repeat="(key, value) in cephConfig.osd_config">
|
|
<td>{{key}}</td>
|
|
<td>{{value}}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</script>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
-->
|