add show log option

Change-Id: Ib68585d22982b67a652f65273eda83a25e24d41f
This commit is contained in:
Xin 2015-12-09 11:19:55 -08:00
parent 6bbe5b9dbb
commit 163a90d5a0
12 changed files with 192 additions and 119 deletions

View File

@ -1,4 +1,4 @@
<!--Copyright 2015 Cisco Systems, Inc. All rights reserved.--><!--Licensed under the Apache License, Version 2.0 (the "License"); you may--><!--not use this file except in compliance with the License. You may obtain--><!--a copy of the License at--><!--http://www.apache.org/licenses/LICENSE-2.0--><!--Unless required by applicable law or agreed to in writing, software--><!--distributed under the License is distributed on an "AS IS" BASIS, WITHOUT--><!--WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the--><!--License for the specific language governing permissions and limitations--><!--under the License.--><!doctype html> <html> <head> <meta charset="utf-8"> <title>KloudBuster</title> <meta name="description" content=""> <meta name="viewport" content="width=device-width"> <!-- Place favicon.ico and apple-touch-icon.png in the root directory --> <link rel="stylesheet" href="styles/vendor.17ab9586.css"> <link rel="stylesheet" href="styles/main.29bdece9.css"> </head> <body ng-app="kbWebApp"> <!--<img class="background" src="images/back.8e3b7090.jpg">--> <!--[if lte IE 8]>
<p class="browsehappy">You are using an <strong>outdated</strong> browser. Please upgrade your browser to improve your
experience.</p>
<![endif]--> <!-- Add your site or application content here --> <div class="header"> <div class="navbar navbar-default navbar-fixed-top" role="navigation"> <!--<img class="background" src="images/back.8e3b7090.jpg">--> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#js-navbar-collapse"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" ng-href="#/" style="font-family: Arial"> <span style="color:#DF314D">K</span>loudBuster <!--<img src="images/logo.d2085010.jpg" alt="LOGO" height="50"/>--> </a> </div> <div class="collapse navbar-collapse" id="js-navbar-collapse"> <ul class="nav navbar-nav"> <li class="dropdown" id="scaletestnav"> <a href="" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><span id="scaletestname">Scale Test </span><span class="caret"></span></a> <ul class="dropdown-menu" role="menu"> <li class="" id="interactivenav"><a ng-href="#/InteractiveMode">Interactive Mode</a></li> <li class="divider"></li> <li class="" id="monitoringnav"><a ng-href="#/MonitoringMode">Monitoring Mode</a></li> </ul> </li> <li class="" id="confignav"><a ng-href="#/Config">Configuration</a></li> <li class="" id="lognav"><a ng-href="#/Log">Log</a></li> <li class="" id="aboutnav"><a ng-href="#/About">About</a></li> </ul> <ul class="nav navbar-nav navbar-right"> <li id="loginnav"><a id="loginname" ng-href="#/Login">Log Out</a></li> </ul> </div> </div> </div> </div> <div class="container"> <div ng-view=""></div> </div> <!--<div class="footer">--> <!--<div class="container" style="text-align:center;">--> <!--&lt;!&ndash;<p><span class="glyphicon glyphicon-heart"></span>KloudBuster&ndash;&gt;--> <!--&lt;!&ndash;</p>&ndash;&gt;--> <!--</div>--> <!--</div>--> <!-- Google Analytics: change UA-XXXXX-X to be your site's ID --> <!--<script>--> <!--!function(A,n,g,u,l,a,r){A.GoogleAnalyticsObject=l,A[l]=A[l]||function(){--> <!--(A[l].q=A[l].q||[]).push(arguments)},A[l].l=+new Date,a=n.createElement(g),--> <!--r=n.getElementsByTagName(g)[0],a.src=u,r.parentNode.insertBefore(a,r)--> <!--}(window,document,'script','https://www.google-analytics.com/analytics.js','ga');--> <!--ga('create', 'UA-XXXXX-X');--> <!--ga('send', 'pageview');--> <!--</script>--> <script src="scripts/vendor.3054de46.js"></script> <script src="scripts/scripts.6620d3f3.js"></script> </body> </html>
<![endif]--> <!-- Add your site or application content here --> <div class="header"> <div class="navbar navbar-default navbar-fixed-top" role="navigation"> <!--<img class="background" src="images/back.8e3b7090.jpg">--> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#js-navbar-collapse"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" ng-href="#/" style="font-family: Arial"> <span style="color:#DF314D">K</span>loudBuster <!--<img src="images/logo.d2085010.jpg" alt="LOGO" height="50"/>--> </a> </div> <div class="collapse navbar-collapse" id="js-navbar-collapse"> <ul class="nav navbar-nav"> <li class="dropdown" id="scaletestnav"> <a href="" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <span id="scaletestname">Scale/Performance</span> <span class="caret">&nbsp;&nbsp;</span> </a> <ul class="dropdown-menu" role="menu"> <li class="" id="interactivenav"><a ng-href="#/InteractiveMode">Interactive Mode</a></li> <li class="divider"></li> <li class="" id="monitoringnav"><a ng-href="#/MonitoringMode">Monitoring Mode</a></li> </ul> </li> <li class="" id="confignav"><a ng-href="#/Config">Configuration</a></li> <li class="" id="lognav"><a ng-href="#/Log">Log</a></li> <li class="" id="aboutnav"><a ng-href="#/About">About</a></li> </ul> <ul class="nav navbar-nav navbar-right"> <li id="loginnav"><a id="loginname" ng-href="#/Login">Log Out</a></li> </ul> </div> </div> </div> </div> <div class="container"> <div ng-view=""></div> </div> <!--<div class="footer">--> <!--<div class="container" style="text-align:center;">--> <!--&lt;!&ndash;<p><span class="glyphicon glyphicon-heart"></span>KloudBuster&ndash;&gt;--> <!--&lt;!&ndash;</p>&ndash;&gt;--> <!--</div>--> <!--</div>--> <!-- Google Analytics: change UA-XXXXX-X to be your site's ID --> <!--<script>--> <!--!function(A,n,g,u,l,a,r){A.GoogleAnalyticsObject=l,A[l]=A[l]||function(){--> <!--(A[l].q=A[l].q||[]).push(arguments)},A[l].l=+new Date,a=n.createElement(g),--> <!--r=n.getElementsByTagName(g)[0],a.src=u,r.parentNode.insertBefore(a,r)--> <!--}(window,document,'script','https://www.google-analytics.com/analytics.js','ga');--> <!--ga('create', 'UA-XXXXX-X');--> <!--ga('send', 'pageview');--> <!--</script>--> <script src="scripts/vendor.3054de46.js"></script> <script src="scripts/scripts.15732574.js"></script> </body> </html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -65,8 +65,10 @@
<ul class="nav navbar-nav">
<li class="dropdown " id="scaletestnav">
<a href="" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><span
id="scaletestname">Scale Test </span><span class="caret"></span></a>
<a href="" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span id="scaletestname">Scale/Performance</span>
<span class="caret">&nbsp;&nbsp;</span>
</a>
<ul class="dropdown-menu" role="menu">
<li class="" id="interactivenav"><a ng-href="#/InteractiveMode">Interactive Mode</a></li>
<li class="divider"></li>
@ -76,7 +78,6 @@
<li class="" id="confignav"><a ng-href="#/Config">Configuration</a></li>
<li class="" id="lognav"><a ng-href="#/Log">Log</a></li>
<li class="" id="aboutnav"><a ng-href="#/About">About</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li id="loginnav"><a id="loginname" ng-href="#/Login">Log Out</a></li>

View File

@ -53,7 +53,7 @@ angular.module('kbWebApp')
loc = $(location).attr('hash');
removeAllNav();
$("#scaletestname").text('Scale Test');
$("#scaletestname").text('Scale/Performance');
$("#loginname").text('Log Out');
switch (loc) {
@ -202,6 +202,7 @@ angular.module('kbWebApp')
isOneCloud = "";
topology = "";
logOffset = 0;
logNum=0;
};
var sessionID = "";
@ -268,6 +269,15 @@ angular.module('kbWebApp')
return logOffset;
};
var logNum = 0;
this.getLogNum = function () {
return logNum;
};
this.setLogNum = function (lognumber) {
logNum = lognumber;
return logNum;
};
})
.service('showAlert', function($mdDialog) {
this.showAlert = function (words, ev) {

View File

@ -376,6 +376,27 @@ angular.module('kbWebApp')
}
);
kbHttp.getMethod("/config/az_list/" + $scope.sessionID)
.then(
function (response) { // .resolve
if(kbCookie.getIsOneCloud()===false)//two clouds
{
$scope.serversides = response.data.server;
$scope.clientsides = response.data.client;
}
else{//one clouds
$scope.serversides = response.data.server;
$scope.clientsides = response.data.server;
}
},
function (response) { // .reject
console.log("get AZ list error:");
console.log(response);
}
);
init();
$scope.getTopology();

View File

@ -39,7 +39,8 @@ angular.module('kbWebApp')
$scope.status = kbCookie.getStatus();
$scope.logs = "";
kbCookie.getLogOffset();
$scope.logNum = kbCookie.getLogNum();
$scope.logOffset = 0;
@ -54,6 +55,7 @@ angular.module('kbWebApp')
//---------------------------------get LOG---------------------------------
$scope.getLog = function () {
if ($scope.sessionID) {
kbCookie.setLogNum($scope.logNum);
kbHttp.getMethod("/kloudbuster/log/" + $scope.sessionID + "?offset=" + kbCookie.getLogOffset())
.then(
@ -71,7 +73,14 @@ angular.module('kbWebApp')
$("#cc").empty();
//console.log($scope.logs.length);
var skipNum;
if(kbCookie.getLogNum()==0) skipNum = 0;
else skipNum = $scope.logs.length-kbCookie.getLogNum();
for (var row in $scope.logs) {
if (skipNum > 0) {skipNum--; continue;}
$scope.logs[row] = $scope.logs[row].replace(/ /g, "&nbsp;");
$("#cc").append($scope.logs[row] + "<br/>");
//console.log($scope.logs[row]);

View File

@ -188,7 +188,6 @@ angular.module('kbWebApp')
}
//no sessionID but have cred
$scope.runCon = {"credentials": {}, kb_cfg: ""};
//console.log($scope.credentials);
$scope.runCon.credentials = $scope.credentials;

View File

@ -50,7 +50,8 @@
<md-input-container class="col-md-12">
<label>VM Creation Concurrency</label>
<input type="number" min="1" max="1000" step="1" name="vm_creation_concurrency"
id="vm_creation_concurrency" ng-model="config.vm_creation_concurrency" ng-pattern="/^[1-9][0-9]{0,2}$/i" required style="text-align:left;"/>
id="vm_creation_concurrency" ng-model="config.vm_creation_concurrency"
ng-pattern="/^[1-9][0-9]{0,2}$/i" required style="text-align:left;"/>
<div ng-messages="general.vm_creation_concurrency.$error" ng-if="general.vm_creation_concurrency.$dirty">
<div ng-message="required" style="padding-right: 0;">This field is required</div>
@ -58,88 +59,116 @@
</div>
</md-input-container>
</md-content>
<!--<form class="bs-component" name="general">-->
<!--<div class="input-group col-sm-12" style="margin:0 auto;"-->
<!--popover="Specifies how many VMs will be created at a time. Larger numbers can be used but will not necessarily shorten the overall staging time (this will largely depend on the scalability of the OpenStack control plane). Well tuned control planes with multiple instances of NOVA have shown to support a concurrency level of up to around 50"-->
<!--popover-trigger="mouseenter" popover-placement="bottom">-->
<!--<span class="input-group-addon">VM Creation Concurrency</span>-->
<!--<input type="number" min="1" max="1000" step="1" name="vm_creation_concurrency" class="form-control"-->
<!--id="vm_creation_concurrency"-->
<!--ng-model="config.vm_creation_concurrency" ng-pattern="/^[1-9][0-9]{0,2}$/i" required/>-->
<!--</div>-->
<!--<div ng-messages="general.vm_creation_concurrency.$error" ng-if="general.vm_creation_concurrency.$dirty">-->
<!--<div ng-message="required">This field is required</div>-->
<!--<div ng-message="pattern">Must be a number between 1 and 999</div>-->
<!--</div>-->
<!--<br/>-->
<!--<form class="bs-component" name="general">-->
<!--<div class="input-group col-sm-12" style="margin:0 auto;"-->
<!--popover="Specifies how many VMs will be created at a time. Larger numbers can be used but will not necessarily shorten the overall staging time (this will largely depend on the scalability of the OpenStack control plane). Well tuned control planes with multiple instances of NOVA have shown to support a concurrency level of up to around 50"-->
<!--popover-trigger="mouseenter" popover-placement="bottom">-->
<!--<span class="input-group-addon">VM Creation Concurrency</span>-->
<!--<input type="number" min="1" max="1000" step="1" name="vm_creation_concurrency" class="form-control"-->
<!--id="vm_creation_concurrency"-->
<!--ng-model="config.vm_creation_concurrency" ng-pattern="/^[1-9][0-9]{0,2}$/i" required/>-->
<!--</div>-->
<!--<div ng-messages="general.vm_creation_concurrency.$error" ng-if="general.vm_creation_concurrency.$dirty">-->
<!--<div ng-message="required">This field is required</div>-->
<!--<div ng-message="pattern">Must be a number between 1 and 999</div>-->
<!--</div>-->
<!--<br/>-->
<!--<div class="input-group col-sm-11" style="margin:0 auto">-->
<!--<span class="input-group-addon">Public Key File:</span>-->
<!--<input type="text" class="form-control" id="public_key_file" ng-model="config.public_key_file"/>-->
<!--</div>-->
<!--<br/>-->
<!--<div class="input-group col-sm-11" style="margin:0 auto">-->
<!--<input type="checkbox" id="server_use_floatingip" ng-model="config.server.use_floatingip" ng-change="config.client.use_floatingip=config.server.use_floatingip" /> use floating IP for client and server VMs-->
<!--</div>-->
<!--<div class="input-group col-sm-11" style="margin:0 auto">-->
<!--<span class="input-group-addon">Public Key File:</span>-->
<!--<input type="text" class="form-control" id="public_key_file" ng-model="config.public_key_file"/>-->
<!--</div>-->
<!--<br/>-->
<!--<div class="input-group col-sm-11" style="margin:0 auto">-->
<!--<input type="checkbox" id="server_use_floatingip" ng-model="config.server.use_floatingip" ng-change="config.client.use_floatingip=config.server.use_floatingip" /> use floating IP for client and server VMs-->
<!--</div>-->
<!--<hr>-->
<!--<hr>-->
<div class="panel panel-default">
<div class="panel-heading">VM Placement</div>
<div class="panel-body">
<div class="panel panel-default">
<div class="panel-heading">VM Placement</div>
<div class="panel-body">
<md-radio-group ng-model="availability_zone" ng-change="changeTopology()">
<md-radio-button value="1" class="md-primary">Let Nova Decide</md-radio-button>
<md-radio-group ng-model="availability_zone" ng-change="changeTopology()">
<md-radio-button value="1" class="md-primary">Let Nova Decide</md-radio-button>
<!--<div class="radio">-->
<!--<label>-->
<!--<input type="radio" ng-model="availability_zone" value="1" ng-change="changeTopology()">-->
<!--Let Nova Decide-->
<!--</label>-->
<!--</div>-->
<!--<div class="radio">-->
<!--<label>-->
<!--<input type="radio" ng-model="availability_zone" value="1" ng-change="changeTopology()">-->
<!--Let Nova Decide-->
<!--</label>-->
<!--</div>-->
<md-radio-button value="2" class="md-primary">Available Zone</md-radio-button>
<md-radio-button value="2" class="md-primary">Available Zone</md-radio-button>
<!--<div class="radio">-->
<!--<label>-->
<!--<input type="radio" ng-model="availability_zone" value="2" ng-change="changeTopology()">-->
<!--Available Zone-->
<!--</label>-->
<!--</div>-->
<div class="row" ng-show="availability_zone==2;"
popover="Leave empty if you prefer to have the Nova scheduler place the server VMs If you want to pick a particular AZ, put that AZ name (e.g. nova) If you want a paticular compute host, put the AZ and compute host names separated by ':' (e.g. nova:tme100) Note that this is ignored/overriden if you choose 'Use Topology'"
popover-trigger="mouseenter" popover-placement="bottom">
<div class="col-md-6 col-sm-6">
<div class="input-group" style="margin:0 auto">
<span class="input-group-addon">For Server</span>
<input type="text" class="form-control" ng-model="config.server.availability_zone"/>
</div>
<!--<div class="radio">-->
<!--<label>-->
<!--<input type="radio" ng-model="availability_zone" value="2" ng-change="changeTopology()">-->
<!--Available Zone-->
<!--</label>-->
<!--</div>-->
<div class="row" ng-show="availability_zone==2;"
popover="Leave empty if you prefer to have the Nova scheduler place the server VMs If you want to pick a particular AZ, put that AZ name (e.g. nova) If you want a paticular compute host, put the AZ and compute host names separated by ':' (e.g. nova:tme100) Note that this is ignored/overriden if you choose 'Use Topology'"
popover-trigger="mouseenter" popover-placement="bottom">
<form name="userForm">
<div class="col-md-6">
<div layout="" layout-sm="column">
<md-input-container flex="">
<label>For Server</label>
<md-select ng-model="config.server.availability_zone">
<md-option ng-repeat="serverside in serversides" value="{{serverside}}">
{{serverside}}
</md-option>
</md-select>
</md-input-container>
</div>
</div>
<div class="col-md-6">
<div layout="" layout-sm="column">
<md-input-container flex="">
<label>For Client</label>
<md-select ng-model="config.client.availability_zone">
<md-option ng-repeat="clientside in clientsides" value="{{clientside}}">
{{clientside}}
</md-option>
</md-select>
</md-input-container>
</div>
</div>
</form>
<!--<div class="col-md-6 col-sm-6">-->
<!--<div class="input-group" style="margin:0 auto">-->
<!--<span class="input-group-addon">For Server</span>-->
<!--<input type="text" class="form-control" ng-model="config.server.availability_zone"/>-->
<!--</div>-->
<!--</div>-->
<!--<div class="col-md-6 col-sm-6">-->
<!--<div class="input-group" style="margin:0 auto">-->
<!--<span class="input-group-addon">For Client</span>-->
<!--<input type="text" class="form-control" ng-model="config.client.availability_zone"/>-->
<!--</div>-->
<!--</div>-->
</div>
<div class="col-md-6 col-sm-6">
<div class="input-group" style="margin:0 auto">
<span class="input-group-addon">For Client</span>
<input type="text" class="form-control" ng-model="config.client.availability_zone"/>
</div>
</div>
</div>
<md-radio-button value="3" class="md-primary">Use Topology
<small> -- customized <cite title="Source Title">VM
placement</cite></small>
</md-radio-button>
<md-radio-button value="3" class="md-primary">Use Topology
<small> -- customized <cite title="Source Title">VM
placement</cite></small>
</md-radio-button>
<!--<div class="radio" id="topology">-->
<!--<label>-->
<!--<input type="radio" ng-model="availability_zone" value="3" ng-change="changeTopology()">-->
<!--Use Topology-->
<!--<small> &#45;&#45; customized <cite title="Source Title">VM placement</cite></small>-->
<!--<div class="radio" id="topology">-->
<!--<label>-->
<!--<input type="radio" ng-model="availability_zone" value="3" ng-change="changeTopology()">-->
<!--Use Topology-->
<!--<small> &#45;&#45; customized <cite title="Source Title">VM placement</cite></small>-->
<!--</label>-->
<!--</div>-->
<div class="row" ng-show="availability_zone==3;">
<div class="col-md-3">
<div class="list-group" id="list3">
<!--</label>-->
<!--</div>-->
<div class="row" ng-show="availability_zone==3;">
<div class="col-md-3">
<div class="list-group" id="list3">
<span class="list-group-item active">Server Pool
<input title="Toggle all" ng-click="toggleC()" ng-model="toggle" type="checkbox" class="pull-right">
</span>
@ -150,23 +179,23 @@
ng-checked="selectedC.indexOf(user.id) > -1" type="checkbox" class="pull-right">
</span>
</span>
</div>
</div>
</div>
<div class="col-md-1 v-center text-center">
<div class="btn-group-sm">
<button title="Send to list 1" class="btn btn-default btn-sm" ng-click="cToA()"
style="margin:10px 0"><i
class="glyphicon glyphicon-chevron-right"></i></button>
<button title="Send to list 3" class="btn btn-default btn-sm" ng-click="aToC()"><i
class="glyphicon glyphicon-chevron-left"></i></button>
<div class="col-md-1 v-center text-center">
<div class="btn-group-sm">
<button title="Send to list 1" class="btn btn-default btn-sm" ng-click="cToA()"
style="margin:10px 0"><i
class="glyphicon glyphicon-chevron-right"></i></button>
<button title="Send to list 3" class="btn btn-default btn-sm" ng-click="aToC()"><i
class="glyphicon glyphicon-chevron-left"></i></button>
</div>
</div>
</div>
<div class="col-md-4">
<div class="list-group" id="list1">
<div class="col-md-4">
<div class="list-group" id="list1">
<span class="list-group-item active">Available Hypervisors
<input title="Toggle all" ng-click="toggleA()" ng-model="toggle" type="checkbox" class="pull-right">
</span>
@ -177,19 +206,19 @@
ng-checked="selectedA.indexOf(user.id) > -1" type="checkbox" class="pull-right">
</span>
</span>
</div>
</div>
</div>
<div class="col-md-1 v-center text-center" style="margin:0px 0px">
<div class="btn-group-sm">
<button title="Send to list 1" class="btn btn-default btn-sm" ng-click="bToA()"
style="margin:10px 0"><i
class="glyphicon glyphicon-chevron-left"></i></button>
<button title="Send to list 2" class="btn btn-default btn-sm" ng-click="aToB()"><i
class="glyphicon glyphicon-chevron-right"></i></button>
<div class="col-md-1 v-center text-center" style="margin:0px 0px">
<div class="btn-group-sm">
<button title="Send to list 1" class="btn btn-default btn-sm" ng-click="bToA()"
style="margin:10px 0"><i
class="glyphicon glyphicon-chevron-left"></i></button>
<button title="Send to list 2" class="btn btn-default btn-sm" ng-click="aToB()"><i
class="glyphicon glyphicon-chevron-right"></i></button>
</div>
</div>
</div>
<div class="col-md-3">
<div class="list-group" id="list2">
<div class="col-md-3">
<div class="list-group" id="list2">
<span class="list-group-item active">Client Pool
<input title="Toggle all" ng-click="toggleB()" ng-model="toggle" type="checkbox" class="pull-right">
</span>
@ -199,21 +228,21 @@
ng-checked="selectedB.indexOf(user.id) > -1" type="checkbox" class="pull-right">
</span>
</span>
</div>
</div>
<div class="col-md-12" style="text-align: right">
<small><cite title="Source Title">Set hypervisors for both sides!</cite></small>
</div>
</div>
<div class="col-md-12" style="text-align: right">
<small><cite title="Source Title">Set hypervisors for both sides!</cite></small>
</div>
</div>
</md-radio-group>
</md-radio-group>
</div>
</div>
</div>
<!--<div class="text-center">-->
<!--<h4 style="margin-top: 5px">VM PLACEMENT</h4>-->
<!--</div>-->
<!--<div class="text-center">-->
<!--<h4 style="margin-top: 5px">VM PLACEMENT</h4>-->
<!--</div>-->
</div>
</form>

View File

@ -33,8 +33,8 @@
<accordion close-others="oneAtATime">
<accordion-group heading="" is-open="status1.open">
<accordion-heading>
Staging Settings <i class="pull-right glyphicon"
ng-class="{'glyphicon-chevron-down': !status1.open, 'glyphicon-chevron-up': status1.open}"></i>
Staging Settings (VM Count: {{config.server.number_tenants*config.server.routers_per_tenant*config.server.networks_per_router*config.server.vms_per_network*config.server.secgroups_per_network}})
<i class="pull-right glyphicon" ng-class="{'glyphicon-chevron-down': !status1.open, 'glyphicon-chevron-up': status1.open}"></i>
</accordion-heading>
<div class="col-lg-14" id="stagingConfig">
<form class="bs-component" name="monitoring_staging_settings">

View File

@ -21,7 +21,11 @@
<thead>
<tr>
<th>
<span>LOGS</span>
<span class="col-md-2" style="float:left;line-height:25px; height:5px;">LOGS</span>
<md-radio-group ng-model="logNum" ng-click="getLog()">
<div class="col-md-2"><md-radio-button value="0" class="md-primary" style="margin: 0 0;">Show All Logs</md-radio-button></div>
<div class="col-md-3"><md-radio-button value="100" class="md-primary" style="margin: 0 0;"> Show Latest 100 Logs </md-radio-button></div>
</md-radio-group>
<span style="float:right;">
<button type="submit" class="btn btn-default btn-xs" ng-click="delLog()" style="width: 65px">Clear</button>
<button type="submit" class="btn btn-primary btn-xs" ng-click="getLog()" style="width: 65px">Refresh</button>

View File

@ -48,8 +48,8 @@
<accordion close-others="oneAtATime">
<accordion-group heading="" is-open="status1.open">
<accordion-heading>
Staging Settings <i class="pull-right glyphicon"
ng-class="{'glyphicon-chevron-down': !status1.open, 'glyphicon-chevron-up': status1.open}"></i>
Staging Settings (VM Count:{{config.server.number_tenants*config.server.routers_per_tenant*config.server.networks_per_router*config.server.vms_per_network*config.server.secgroups_per_network}})
<i class="pull-right glyphicon" ng-class="{'glyphicon-chevron-down': !status1.open, 'glyphicon-chevron-up': status1.open}"></i>
</accordion-heading>
<div class="col-lg-14" id="stagingConfig">
<form class="bs-component" name="interactive_staging_settings">