44bf8b296f7cd22a3839411739d100af3c77ac82
[usecase-ui.git] /
1 /*
2  Copyright (C) 2017 CMCC, Inc. and others. All rights reserved.
3
4  Licensed under the Apache License, Version 2.0 (the "License");
5  you may not use this file except in compliance with the License.
6  You may obtain a copy of the License at
7
8  http://www.apache.org/licenses/LICENSE-2.0
9
10  Unless required by applicable law or agreed to in writing, software
11  distributed under the License is distributed on an "AS IS" BASIS,
12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  See the License for the specific language governing permissions and
14  limitations under the License.
15  */
16 app.controller('pertabCtrl', ['$scope', '$http', '$routeParams', '$window' ,
17     function ($scope, $http, $routeParams, $window) {
18     $scope.tabes = [
19         {title: 'one hour'},
20         {title: 'one day'},
21         {title: 'one month'},
22         {title: 'one year'}
23     ];
24     $scope.valuess = [];
25     $scope.csvData = [];
26     $scope.barChart = function (unit) {
27         $http.get(global_url + '/performance/diagram/' + unit + '/' + permanceId, {
28             headers: {
29                 'Access-Control-Allow-Origin': "*",
30                 "Content-Type": "application/json"
31             }
32         })
33             .success(function (data) {
34                 var v = 0;
35                 var i = 0;
36                 if (unit === "hour") {
37                     for(var h=0;h<4;h++){
38                         $scope.valuess[h] = [
39                             {"x": '15min', "y": 4}, {"x": '30min', "y": 4}, {"x": '45min', "y": 12},
40                             {"x": '60min', "y": 3.27}
41                         ];
42                     };
43                     angular.forEach(data, function (obj) {
44                         for (var j = 0; j < obj.length; j++, i++) {
45                             if (i >= 4) {
46                                 v++;
47                                 i = 0;
48                             }
49                             $scope.valuess[v][i].y = obj[j];
50                         }
51                     });
52                     for (var d = 0; d < 5; d++) {
53                         window.setTimeout(function () {
54                             redraw("", $scope.valuess);
55                         }, 1500);
56                     };
57                 }
58                 if (unit === "day") {
59                     for(var d=0;d<4;d++){
60                         $scope.valuess[d] = [
61                             { "x":'1h' , "y":4}, { "x":'2h' , "y":4}, { "x":'3h' , "y":12},
62                             { "x":'4h' , "y":3.27}, { "x":'5h' , "y":34}, { "x":'6h' , "y":34}, { "x":'7h' , "y":34},
63                             { "x":'8h' , "y":34}, { "x":'9h' , "y":34}, { "x":'10h' , "y":34}, { "x":'11h' , "y":34},
64                             { "x":'12h' , "y":56}, { "x":'13h' , "y":34}, { "x":'14h' , "y":34}, { "x":'15h' , "y":34},
65                             { "x":'16h' , "y":12}, { "x":'17h' , "y":34}, { "x":'18h' , "y":50}, { "x":'19h' , "y":34},
66                             { "x":'20h' , "y":34}, { "x":'21h' , "y":54}, { "x":'22h' , "y":34}, { "x":'23h' , "y":34},
67                             { "x":'24h' , "y":36}
68                         ];
69                     };
70                     angular.forEach(data, function (obj) {
71                         for (var j = 0; j < obj.length; j++, i++) {
72                             if (i >= 24) {
73                                 v++;
74                                 i = 0;
75                             }
76                             $scope.valuess[v][i].y = obj[j];
77                         }
78                     })
79                     for (var d = 0; d < 5; d++) {
80                         window.setTimeout(function () {
81                             redraw("1", $scope.valuess);
82                         }, 1500);
83                     };
84                 }
85                 if (unit === "month") {
86                     for(var m=0;m<4;m++){
87                         $scope.valuess[m] =  [
88                             { "x":'1d' , "y":4}, { "x":'2d' , "y":4}, { "x":'3d' , "y":12},
89                             { "x":'4d' , "y":3.27}, { "x":'5d' , "y":34},{ "x":'6d' , "y":4}, { "x":'7d' , "y":4}, { "x":'8d' , "y":12},
90                             { "x":'9d' , "y":3.27}, { "x":'10d' , "y":34}, { "x":'11d' , "y":34}, { "x":'12d' , "y":34},  { "x":'13d' , "y":4}, { "x":'14d' , "y":4}, { "x":'15' , "y":12},
91                             { "x":'16d' , "y":3.27}, { "x":'17d' , "y":34},{ "x":'18d' , "y":4}, { "x":'19d' , "y":4}, { "x":'20d' , "y":12},
92                             { "x":'21d' , "y":3.27}, { "x":'22d' , "y":34}, { "x":'23d' , "y":34}, { "x":'24d' , "y":34}, { "x":'25d' , "y":4}, { "x":'26d' , "y":12},
93                             { "x":'27d' , "y":3.27}, { "x":'28d' , "y":34}, { "x":'29d' , "y":34}, { "x":'30d' , "y":34}, { "x":'31d' , "y":34}
94                         ];
95                     };
96                     angular.forEach(data, function (obj) {
97                         for (var j = 0; j < obj.length; j++, i++) {
98                             if (i >= 31) {
99                                 v++;
100                                 i = 0;
101                             }
102                             $scope.valuess[v][i].y = obj[j];
103                         }
104                     });
105                     for (var d = 0; d < 5; d++) {
106                         window.setTimeout(function () {
107                             redraw("2", $scope.valuess);
108                         }, 1500);
109                     };
110                 }
111                 if (unit === "year") {
112                     for(var y=0;y<12;y++){
113                         $scope.valuess[y] = [
114                             {"x": 'Jan', "y": 4}, {"x": 'Feb', "y": 4}, {"x": 'Mar', "y": 12},
115                             {"x": 'Apr', "y": 3.27},  {"x": 'May', "y": 4}, {"x": 'June', "y": 4}, {"x": 'July', "y": 12},
116                             {"x": 'Aug', "y": 3.27},  {"x": 'Sept', "y": 4}, {"x": 'Oct', "y": 4}, {"x": 'Nov', "y": 12},
117                             {"x": 'Jan', "y": 3.27}
118                         ];
119                     };
120                     angular.forEach(data, function (obj) {
121                         for (var j = 0; j < obj.length; j++, i++) {
122                             if (i >= 12) {
123                                 v++;
124                                 i = 0;
125                             }
126                             $scope.valuess[v][i].y = obj[j];
127                         }
128                     });
129                     for (var d = 0; d < 5; d++) {
130                         window.setTimeout(function () {
131                             redraw("3", $scope.valuess);
132                         }, 1500);
133                     };
134                 }
135             });
136     };
137     $scope.oneHour = function () {
138         changerotate(0);
139         $scope.barChart('hour');
140
141     };
142     $scope.oneHour();
143     $scope.oneDay = function () {
144         changerotate(90);
145         $scope.barChart('day');
146     };
147     $scope.oneMonth = function () {
148         changerotate(80);
149         $scope.barChart('month');
150
151     };
152     $scope.oneYear = function () {
153         changerotate(0);
154         $scope.barChart('year');
155     };
156     $scope.generateCsv = function (name) {
157         if (name == "cpu"){
158             for (var i = 0;i < $scope.valuess[2].length;i++){
159                 $scope.csvData[i] = {};
160                 $scope.csvData[i]["eventId"] = permanceId;
161                 $scope.csvData[i]["name"] = name;
162                 $scope.csvData[i]["dateUnit"] = $scope.valuess[2][i].x;
163                 $scope.csvData[i]["value"] = $scope.valuess[2][i].y;
164             }
165         }
166         if (name == "disk"){
167             for (var i = 0;i < $scope.valuess[0].length;i++){
168                 $scope.csvData[i] = {};
169                 $scope.csvData[i]["eventId"] = permanceId;
170                 $scope.csvData[i]["name"] = name;
171                 $scope.csvData[i]["dateUnit"] = $scope.valuess[0][i].x;
172                 $scope.csvData[i]["value"] = $scope.valuess[0][i].y;
173             }
174         }
175         if (name == "memory"){
176             for (var i = 0;i < $scope.valuess[1].length;i++){
177                 $scope.csvData[i] = {};
178                 $scope.csvData[i]["eventId"] = permanceId;
179                 $scope.csvData[i]["name"] = name;
180                 $scope.csvData[i]["dateUnit"] = $scope.valuess[1][i].x;
181                 $scope.csvData[i]["value"] = $scope.valuess[1][i].y;
182             }
183         }
184         if (name == "network"){
185             for (var i = 0;i < $scope.valuess[3].length;i++){
186                 $scope.csvData[i] = {};
187                 $scope.csvData[i]["eventId"] = permanceId;
188                 $scope.csvData[i]["name"] = name;
189                 $scope.csvData[i]["dateUnit"] = $scope.valuess[3][i].x;
190                 $scope.csvData[i]["value"] = $scope.valuess[3][i].y;
191             }
192         }
193         if($scope.csvData != null ){
194             $window.location = global_url+"/performance/genDiaCsv/"+JSON.stringify($scope.csvData);
195         }
196     }
197 }]);