blob: 9b619bd01db1b1ba882b0673cdafcb6e90d2aa6c [file] [log] [blame]
Iftekharul Islam99d199f2017-03-24 15:28:25 -05001/**
2 * API utilities service
3 *
4 * @module app/common/services/api-utils
5 * @exports APIUtils
6 * @name APIUtils
7 * @version 0.0.1
8 */
9
10window.angular && (function (angular) {
11 'use strict';
12 angular
13 .module('app.common.services')
Iftekharul Islam1acb4122017-11-02 13:20:32 -050014 .factory('APIUtils', ['$http', 'Constants', '$q', 'dataService',function($http, Constants, $q, DataService){
Iftekharul Islam99d199f2017-03-24 15:28:25 -050015 var SERVICE = {
16 LOGIN_CREDENTIALS: Constants.LOGIN_CREDENTIALS,
17 API_CREDENTIALS: Constants.API_CREDENTIALS,
18 API_RESPONSE: Constants.API_RESPONSE,
19 CHASSIS_POWER_STATE: Constants.CHASSIS_POWER_STATE,
20 HOST_STATE_TEXT: Constants.HOST_STATE,
21 HOST_STATE: Constants.HOST_STATE,
Iftekharul Islamcd789502017-04-19 14:37:55 -050022 LED_STATE: Constants.LED_STATE,
23 LED_STATE_TEXT: Constants.LED_STATE_TEXT,
Iftekharul Islam1acb4122017-11-02 13:20:32 -050024 HOST_SESSION_STORAGE_KEY: Constants.API_CREDENTIALS.host_storage_key,
Iftekharul Islam99d199f2017-03-24 15:28:25 -050025 getChassisState: function(callback){
26 $http({
27 method: 'GET',
Iftekharul Islam1acb4122017-11-02 13:20:32 -050028 url: DataService.getHost() + "/xyz/openbmc_project/state/chassis0",
Iftekharul Islam99d199f2017-03-24 15:28:25 -050029 headers: {
30 'Accept': 'application/json',
31 'Content-Type': 'application/json'
32 },
33 withCredentials: true
Ed Tanousbbcf6702017-10-06 13:53:06 -070034 }).then(function(response){
35 var json = JSON.stringify(response.data);
Iftekharul Islam99d199f2017-03-24 15:28:25 -050036 var content = JSON.parse(json);
37 callback(content.data.CurrentPowerState);
Ed Tanousbbcf6702017-10-06 13:53:06 -070038 }, function(error){
Iftekharul Islam99d199f2017-03-24 15:28:25 -050039 console.log(error);
40 });
41 },
42 getHostState: function(callback){
43 $http({
44 method: 'GET',
Iftekharul Islam1acb4122017-11-02 13:20:32 -050045 url: DataService.getHost() + "/xyz/openbmc_project/state/host0",
Iftekharul Islam99d199f2017-03-24 15:28:25 -050046 headers: {
47 'Accept': 'application/json',
48 'Content-Type': 'application/json'
49 },
50 withCredentials: true
Ed Tanousbbcf6702017-10-06 13:53:06 -070051 }).then(function(response){
52 var json = JSON.stringify(response.data);
Iftekharul Islam99d199f2017-03-24 15:28:25 -050053 var content = JSON.parse(json);
54 callback(content.data.CurrentHostState);
Ed Tanousbbcf6702017-10-06 13:53:06 -070055 }, function(error){
Iftekharul Islam99d199f2017-03-24 15:28:25 -050056 console.log(error);
57 });
58 },
Iftekharul Islam171c6a12017-08-11 08:35:47 -050059 getNetworkInfo: function(){
60 var deferred = $q.defer();
61 $http({
62 method: 'GET',
Iftekharul Islam1acb4122017-11-02 13:20:32 -050063 url: DataService.getHost() + "/xyz/openbmc_project/network/enumerate",
Iftekharul Islam171c6a12017-08-11 08:35:47 -050064 headers: {
65 'Accept': 'application/json',
66 'Content-Type': 'application/json'
67 },
68 withCredentials: true
Ed Tanousbbcf6702017-10-06 13:53:06 -070069 }).then(function(response){
70 var json = JSON.stringify(response.data);
Iftekharul Islam171c6a12017-08-11 08:35:47 -050071 var content = JSON.parse(json);
72 var hostname = "";
73 var macAddress = "";
74
Iftekharul Islam2a489552017-11-02 13:23:08 -050075 function parseNetworkData(content){
76 var data = {
77 interface_ids: [],
78 interfaces: {
79 }
80 };
81 var interfaceId = '', keyParts = [], interfaceHash = '', interfaceType = '';
82 for(var key in content.data){
83 if(key.match(/network\/eth\d+$/ig)){
84 interfaceId = key.split("/").pop();
85 if(data.interface_ids.indexOf(interfaceId) == -1){
86 data.interface_ids.push(interfaceId);
87 data.interfaces[interfaceId] = {
88 interfaceIname: '',
89 domainName:'',
90 MACAddress:'',
91 Nameservers: [],
92 DHCPEnabled: 0,
93 ipv4:
94 {
95 ids: [],
96 values: []
97 },
98 ipv6:
99 {
100 ids: [],
101 values: []
102 }
103 };
104 data.interfaces[interfaceId].MACAddress = content.data[key].MACAddress;
105 data.interfaces[interfaceId].DomainName = content.data[key].DomainName.join(" ");
106 data.interfaces[interfaceId].Nameservers = content.data[key].Nameservers;
107 data.interfaces[interfaceId].DHCPEnabled = content.data[key].DHCPEnabled;
108 }
109 }else if(key.match(/network\/eth\d+\/ipv[4|6]\/[a-z0-9]+$/ig)){
110 keyParts = key.split("/");
111 interfaceHash = keyParts.pop();
112 interfaceType = keyParts.pop();
113 interfaceId = keyParts.pop();
114
115 if(data.interfaces[interfaceId][interfaceType].ids.indexOf(interfaceHash) == -1){
116 data.interfaces[interfaceId][interfaceType].ids.push(interfaceHash);
117 data.interfaces[interfaceId][interfaceType].values.push(content.data[key]);
118 }
119 }
120 }
121 return data;
122 }
123
Iftekharul Islam171c6a12017-08-11 08:35:47 -0500124 if(content.data.hasOwnProperty('/xyz/openbmc_project/network/config') &&
125 content.data['/xyz/openbmc_project/network/config'].hasOwnProperty('HostName')
126 ){
127 hostname = content.data['/xyz/openbmc_project/network/config'].HostName;
128 }
129
130 if(content.data.hasOwnProperty('/xyz/openbmc_project/network/eth0') &&
131 content.data['/xyz/openbmc_project/network/eth0'].hasOwnProperty('MACAddress')
132 ){
133 macAddress = content.data['/xyz/openbmc_project/network/eth0'].MACAddress;
134 }
135
136 deferred.resolve({
137 data: content.data,
138 hostname: hostname,
139 mac_address: macAddress,
Iftekharul Islam2a489552017-11-02 13:23:08 -0500140 formatted_data: parseNetworkData(content)
Iftekharul Islam171c6a12017-08-11 08:35:47 -0500141 });
Ed Tanousbbcf6702017-10-06 13:53:06 -0700142 }, function(error){
Iftekharul Islam171c6a12017-08-11 08:35:47 -0500143 console.log(error);
144 deferred.reject(error);
145 });
146 return deferred.promise;
147 },
Michael Davisdf3bd122017-08-10 11:03:42 -0500148 getLEDState: function(){
149 var deferred = $q.defer();
Iftekharul Islamcd789502017-04-19 14:37:55 -0500150 $http({
151 method: 'GET',
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500152 url: DataService.getHost() + "/xyz/openbmc_project/led/groups/enclosure_identify",
Iftekharul Islamcd789502017-04-19 14:37:55 -0500153 headers: {
154 'Accept': 'application/json',
155 'Content-Type': 'application/json'
156 },
157 withCredentials: true
Ed Tanousbbcf6702017-10-06 13:53:06 -0700158 }).then(function(response){
159 var json = JSON.stringify(response.data);
Michael Davisdf3bd122017-08-10 11:03:42 -0500160 var content = JSON.parse(json);
161 deferred.resolve(content.data.Asserted);
Ed Tanousbbcf6702017-10-06 13:53:06 -0700162 }, function(error){
Iftekharul Islamcd789502017-04-19 14:37:55 -0500163 console.log(error);
Michael Davisdf3bd122017-08-10 11:03:42 -0500164 deferred.reject(error);
Iftekharul Islamcd789502017-04-19 14:37:55 -0500165 });
Michael Davisdf3bd122017-08-10 11:03:42 -0500166 return deferred.promise;
Iftekharul Islamcd789502017-04-19 14:37:55 -0500167 },
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500168 login: function(username, password, callback){
169 $http({
170 method: 'POST',
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500171 url: DataService.getHost() + "/login",
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500172 headers: {
173 'Accept': 'application/json',
174 'Content-Type': 'application/json'
175 },
176 withCredentials: true,
177 data: JSON.stringify({"data": [username, password]})
Ed Tanousbbcf6702017-10-06 13:53:06 -0700178 }).then(function(response){
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500179 if(callback){
Ed Tanousbbcf6702017-10-06 13:53:06 -0700180 callback(response.data);
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500181 }
Ed Tanousbbcf6702017-10-06 13:53:06 -0700182 }, function(error){
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500183 if(callback){
Iftekharul Islamcd789502017-04-19 14:37:55 -0500184 if(error && error.status && error.status == 'error'){
185 callback(error);
186 }else{
187 callback(error, true);
188 }
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500189 }
190 console.log(error);
191 });
192 },
193 logout: function(callback){
194 $http({
195 method: 'POST',
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500196 url: DataService.getHost() + "/logout",
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500197 headers: {
198 'Accept': 'application/json',
199 'Content-Type': 'application/json'
200 },
201 withCredentials: true,
202 data: JSON.stringify({"data": []})
Ed Tanousbbcf6702017-10-06 13:53:06 -0700203 }).then(function(response){
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500204 if(callback){
Iftekharul Islamde883402018-02-05 11:16:21 -0600205 callback(response.data);
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500206 }
Ed Tanousbbcf6702017-10-06 13:53:06 -0700207 }, function(error){
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500208 if(callback){
209 callback(null, error);
210 }
211 console.log(error);
212 });
213 },
214 chassisPowerOn: function(callback){
215 $http({
216 method: 'POST',
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500217 url: DataService.getHost() + "/xyz/openbmc_project/state/host0",
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500218 headers: {
219 'Accept': 'application/json',
220 'Content-Type': 'application/json'
221 },
222 withCredentials: true,
223 data: JSON.stringify({"data": []})
Ed Tanousbbcf6702017-10-06 13:53:06 -0700224 }).then(function(response){
225 var json = JSON.stringify(response.data);
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500226 var content = JSON.parse(json);
227 if(callback){
228 return callback(content.data.CurrentPowerState);
229 }
Ed Tanousbbcf6702017-10-06 13:53:06 -0700230 }, function(error){
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500231 if(callback){
232 callback(error);
233 }else{
234 console.log(error);
235 }
236 });
237 },
238 chassisPowerOff: function(callback){
239 $http({
Gunnar Mills3aa8b532018-02-06 15:42:29 -0600240 method: 'PUT',
241 url: DataService.getHost() + "/xyz/openbmc_project/state/chassis0/attr/RequestedPowerTransition",
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500242 headers: {
243 'Accept': 'application/json',
244 'Content-Type': 'application/json'
245 },
246 withCredentials: true,
Gunnar Mills3aa8b532018-02-06 15:42:29 -0600247 data: JSON.stringify({"data": "xyz.openbmc_project.State.Chassis.Transition.Off"})
Ed Tanousbbcf6702017-10-06 13:53:06 -0700248 }).then(function(response){
249 var json = JSON.stringify(response.data);
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500250 var content = JSON.parse(json);
251 if(callback){
Gunnar Mills3aa8b532018-02-06 15:42:29 -0600252 return callback(content.status);
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500253 }
Ed Tanousbbcf6702017-10-06 13:53:06 -0700254 }, function(error){
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500255 if(callback){
256 callback(error);
257 }else{
258 console.log(error);
259 }
260 });
261 },
Iftekharul Islamcd789502017-04-19 14:37:55 -0500262 setLEDState: function(state, callback){
263 $http({
264 method: 'PUT',
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500265 url: DataService.getHost() + "/xyz/openbmc_project/led/groups/enclosure_identify/attr/Asserted",
Iftekharul Islamcd789502017-04-19 14:37:55 -0500266 headers: {
267 'Accept': 'application/json',
268 'Content-Type': 'application/json'
269 },
270 withCredentials: true,
271 data: JSON.stringify({"data": state})
Ed Tanousbbcf6702017-10-06 13:53:06 -0700272 }).then(function(response){
273 var json = JSON.stringify(response.data);
Iftekharul Islamcd789502017-04-19 14:37:55 -0500274 var content = JSON.parse(json);
275 if(callback){
276 return callback(content.status);
277 }
Ed Tanousbbcf6702017-10-06 13:53:06 -0700278 }, function(error){
Iftekharul Islamcd789502017-04-19 14:37:55 -0500279 if(callback){
280 callback(error);
281 }else{
282 console.log(error);
283 }
284 });
285 },
Iftekharul Islam55368122017-03-27 09:46:50 -0500286 bmcReboot: function(callback){
287 $http({
288 method: 'PUT',
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500289 url: DataService.getHost() + "/xyz/openbmc_project/state/bmc0/attr/RequestedBmcTransition",
Iftekharul Islam55368122017-03-27 09:46:50 -0500290 headers: {
291 'Accept': 'application/json',
292 'Content-Type': 'application/json'
293 },
294 withCredentials: true,
295 data: JSON.stringify({"data": "xyz.openbmc_project.State.BMC.Transition.Reboot"})
Ed Tanousbbcf6702017-10-06 13:53:06 -0700296 }).then(function(response){
297 var json = JSON.stringify(response.data);
Iftekharul Islam55368122017-03-27 09:46:50 -0500298 var content = JSON.parse(json);
299 if(callback){
300 return callback(content.status);
301 }
Ed Tanousbbcf6702017-10-06 13:53:06 -0700302 }, function(error){
Iftekharul Islam55368122017-03-27 09:46:50 -0500303 if(callback){
304 callback(error);
305 }else{
306 console.log(error);
307 }
308 });
309 },
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500310 hostPowerOn: function(callback){
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500311 $http({
312 method: 'PUT',
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500313 url: DataService.getHost() + "/xyz/openbmc_project/state/host0/attr/RequestedHostTransition",
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500314 headers: {
315 'Accept': 'application/json',
316 'Content-Type': 'application/json'
317 },
318 withCredentials: true,
319 data: JSON.stringify({"data": "xyz.openbmc_project.State.Host.Transition.On"})
Ed Tanousbbcf6702017-10-06 13:53:06 -0700320 }).then(function(response){
321 var json = JSON.stringify(response.data);
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500322 var content = JSON.parse(json);
323 if(callback){
324 return callback(content.status);
325 }
Ed Tanousbbcf6702017-10-06 13:53:06 -0700326 }, function(error){
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500327 if(callback){
328 callback(error);
329 }else{
330 console.log(error);
331 }
332 });
333 },
334 hostPowerOff: function(callback){
335 $http({
336 method: 'PUT',
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500337 url: DataService.getHost() + "/xyz/openbmc_project/state/host0/attr/RequestedHostTransition",
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500338 headers: {
339 'Accept': 'application/json',
340 'Content-Type': 'application/json'
341 },
342 withCredentials: true,
343 data: JSON.stringify({"data": "xyz.openbmc_project.State.Host.Transition.Off"})
Ed Tanousbbcf6702017-10-06 13:53:06 -0700344 }).then(function(response){
345 var json = JSON.stringify(response.data);
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500346 var content = JSON.parse(json);
347 if(callback){
348 return callback(content.status);
349 }
Ed Tanousbbcf6702017-10-06 13:53:06 -0700350 }, function(error){
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500351 if(callback){
352 callback(error);
353 }else{
354 console.log(error);
355 }
356 });
357 },
358 hostReboot: function(callback){
359 $http({
Gunnar Millscacfa6d2018-02-07 12:09:02 -0600360 method: 'PUT',
361 url: DataService.getHost() + "/xyz/openbmc_project/state/host0/attr/RequestedHostTransition",
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500362 headers: {
363 'Accept': 'application/json',
364 'Content-Type': 'application/json'
365 },
366 withCredentials: true,
Gunnar Millscacfa6d2018-02-07 12:09:02 -0600367 data: JSON.stringify({"data": "xyz.openbmc_project.State.Host.Transition.Reboot"})
Ed Tanousbbcf6702017-10-06 13:53:06 -0700368 }).then(function(response){
369 var json = JSON.stringify(response.data);
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500370 var content = JSON.parse(json);
371 if(callback){
Gunnar Millscacfa6d2018-02-07 12:09:02 -0600372 return callback(content.status);
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500373 }
Ed Tanousbbcf6702017-10-06 13:53:06 -0700374 }, function(error){
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500375 if(callback){
376 callback(error);
377 }else{
378 console.log(error);
379 }
380 });
381 },
382 hostShutdown: function(callback){
383 $http({
384 method: 'POST',
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500385 url: DataService.getHost() + "/xyz/openbmc_project/state/host0",
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500386 headers: {
387 'Accept': 'application/json',
388 'Content-Type': 'application/json'
389 },
390 withCredentials: true,
391 data: JSON.stringify({"data": []})
Ed Tanousbbcf6702017-10-06 13:53:06 -0700392 }).then(function(response){
393 var json = JSON.stringify(response.data);
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500394 var content = JSON.parse(json);
395 if(callback){
396 return callback(content);
397 }
Ed Tanousbbcf6702017-10-06 13:53:06 -0700398 }, function(error){
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500399 if(callback){
400 callback(error);
401 }else{
402 console.log(error);
403 }
404 });
Iftekharul Islamcd789502017-04-19 14:37:55 -0500405 },
Michael Davisdf3bd122017-08-10 11:03:42 -0500406 getLogs: function(){
407 var deferred = $q.defer();
Iftekharul Islamcd789502017-04-19 14:37:55 -0500408 $http({
409 method: 'GET',
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500410 url: DataService.getHost() + "/xyz/openbmc_project/logging/enumerate",
Iftekharul Islamcd789502017-04-19 14:37:55 -0500411 headers: {
412 'Accept': 'application/json',
413 'Content-Type': 'application/json'
414 },
415 withCredentials: true
Ed Tanousbbcf6702017-10-06 13:53:06 -0700416 }).then(function(response){
417 var json = JSON.stringify(response.data);
Iftekharul Islamcd789502017-04-19 14:37:55 -0500418 var content = JSON.parse(json);
419 var dataClone = JSON.parse(JSON.stringify(content.data));
420 var data = [];
421 var severityCode = '';
422 var priority = '';
Iftekharul Islamec6bcd12017-09-06 10:49:07 -0500423 var health = '';
Iftekharul Islamcd789502017-04-19 14:37:55 -0500424 var relatedItems = [];
425
426 for(var key in content.data){
427 if(content.data.hasOwnProperty(key) && content.data[key].hasOwnProperty('Id')){
428 var severityFlags = {low: false, medium: false, high: false};
Iftekharul Islamec6bcd12017-09-06 10:49:07 -0500429 var healthFlags = {critical: false, warning: false, good: false};
Iftekharul Islamcd789502017-04-19 14:37:55 -0500430 severityCode = content.data[key].Severity.split(".").pop();
431 priority = Constants.SEVERITY_TO_PRIORITY_MAP[severityCode];
432 severityFlags[priority.toLowerCase()] = true;
Iftekharul Islamec6bcd12017-09-06 10:49:07 -0500433 health = Constants.SEVERITY_TO_HEALTH_MAP[severityCode];
434 healthFlags[health.toLowerCase()] = true;
Iftekharul Islamcd789502017-04-19 14:37:55 -0500435 relatedItems = [];
436 content.data[key].associations.forEach(function(item){
Iftekharul Islam532763f2017-04-25 09:44:40 -0500437 relatedItems.push(item[2]);
Iftekharul Islamcd789502017-04-19 14:37:55 -0500438 });
439
440 data.push(Object.assign({
441 path: key,
442 copied: false,
443 priority: priority,
444 severity_code: severityCode,
445 severity_flags: severityFlags,
Iftekharul Islamec6bcd12017-09-06 10:49:07 -0500446 health_flags: healthFlags,
Iftekharul Islamcd789502017-04-19 14:37:55 -0500447 additional_data: content.data[key].AdditionalData.join("\n"),
Gunnar Mills43a2ed12018-02-08 15:42:30 -0600448 type: content.data[key].Message,
Iftekharul Islamcd789502017-04-19 14:37:55 -0500449 selected: false,
Iftekharul Islam8b4828a2017-04-19 14:37:55 -0500450 search_text: ("#" + content.data[key].Id + " " + severityCode + " " + content.data[key].Severity + " " + content.data[key].AdditionalData.join(" ")).toLowerCase(),
Iftekharul Islamcd789502017-04-19 14:37:55 -0500451 meta: false,
452 confirm: false,
453 related_items: relatedItems,
454 data: {key: key, value: content.data[key]}
455 }, content.data[key]));
456 }
457 }
Michael Davisdf3bd122017-08-10 11:03:42 -0500458 deferred.resolve({data: data, original: dataClone});
Ed Tanousbbcf6702017-10-06 13:53:06 -0700459 }, function(error){
Iftekharul Islamcd789502017-04-19 14:37:55 -0500460 console.log(error);
Michael Davisdf3bd122017-08-10 11:03:42 -0500461 deferred.reject(error);
Iftekharul Islamcd789502017-04-19 14:37:55 -0500462 });
Michael Davisdf3bd122017-08-10 11:03:42 -0500463
464 return deferred.promise;
Iftekharul Islamd2269e22017-05-02 09:32:45 -0500465 },
466 getAllSensorStatus: function(callback){
Iftekharul Islamd2269e22017-05-02 09:32:45 -0500467 $http({
468 method: 'GET',
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500469 url: DataService.getHost() + "/xyz/openbmc_project/sensors/enumerate",
Iftekharul Islamd2269e22017-05-02 09:32:45 -0500470 headers: {
471 'Accept': 'application/json',
472 'Content-Type': 'application/json'
473 },
474 withCredentials: true
Ed Tanousbbcf6702017-10-06 13:53:06 -0700475 }).then(function(response){
476 var json = JSON.stringify(response.data);
Iftekharul Islamd2269e22017-05-02 09:32:45 -0500477 var content = JSON.parse(json);
478 var dataClone = JSON.parse(JSON.stringify(content.data));
479 var sensorData = [];
Iftekharul Islam8947e702017-07-27 10:28:07 -0500480 var severity = {};
481 var title = "";
482 var tempKeyParts = [];
483 var order = 0;
Iftekharul Islam8a122842017-09-11 10:58:16 -0500484 var customOrder = 0;
Iftekharul Islamd2269e22017-05-02 09:32:45 -0500485
Iftekharul Islam96bbf312017-08-22 13:44:38 -0500486 function getScaledValue(value, scale){
487 scale = scale + "";
Iftekharul Islamec6bcd12017-09-06 10:49:07 -0500488 scale = parseInt(scale, 10);
489 var power = Math.abs(parseInt(scale,10));
Iftekharul Islam96bbf312017-08-22 13:44:38 -0500490
Iftekharul Islamec6bcd12017-09-06 10:49:07 -0500491 if(scale > 0){
Iftekharul Islam96bbf312017-08-22 13:44:38 -0500492 value = value * Math.pow(10, power);
Iftekharul Islamec6bcd12017-09-06 10:49:07 -0500493 }else if(scale < 0){
Iftekharul Islam96bbf312017-08-22 13:44:38 -0500494 value = value / Math.pow(10, power);
495 }
496 return value;
497 }
498
Iftekharul Islamd2269e22017-05-02 09:32:45 -0500499 function getSensorStatus(reading){
Iftekharul Islam8947e702017-07-27 10:28:07 -0500500 var severityFlags = {critical: false, warning: false, normal: false}, severityText = '', order = 0;
501
502 if(reading.hasOwnProperty('CriticalLow') &&
503 reading.Value < reading.CriticalLow
504 ){
Iftekharul Islamd2269e22017-05-02 09:32:45 -0500505 severityFlags.critical = true;
506 severityText = 'critical';
Iftekharul Islam8947e702017-07-27 10:28:07 -0500507 order = 2;
508 }else if(reading.hasOwnProperty('CriticalHigh') &&
509 reading.Value > reading.CriticalHigh
510 ){
511 severityFlags.critical = true;
512 severityText = 'critical';
513 order = 2;
514 }else if(reading.hasOwnProperty('CriticalLow') &&
515 reading.hasOwnProperty('WarningLow') &&
516 reading.Value >= reading.CriticalLow && reading.Value <= reading.WarningLow){
Iftekharul Islamd2269e22017-05-02 09:32:45 -0500517 severityFlags.warning = true;
518 severityText = 'warning';
Iftekharul Islam8947e702017-07-27 10:28:07 -0500519 order = 1;
520 }else if(reading.hasOwnProperty('WarningHigh') &&
521 reading.hasOwnProperty('CriticalHigh') &&
522 reading.Value >= reading.WarningHigh && reading.Value <= reading.CriticalHigh){
523 severityFlags.warning = true;
524 severityText = 'warning';
525 order = 1;
Iftekharul Islamd2269e22017-05-02 09:32:45 -0500526 }else{
527 severityFlags.normal = true;
528 severityText = 'normal';
529 }
Iftekharul Islam8947e702017-07-27 10:28:07 -0500530 return { flags: severityFlags, severityText: severityText, order: order};
Iftekharul Islamd2269e22017-05-02 09:32:45 -0500531 }
532
533 for(var key in content.data){
534 if(content.data.hasOwnProperty(key) && content.data[key].hasOwnProperty('Unit')){
Iftekharul Islam8947e702017-07-27 10:28:07 -0500535
536 severity = getSensorStatus(content.data[key]);
537
538 if(!content.data[key].hasOwnProperty('CriticalLow')){
539 content.data[key].CriticalLow = "--";
540 content.data[key].CriticalHigh = "--";
541 }
542
543 if(!content.data[key].hasOwnProperty('WarningLow')){
544 content.data[key].WarningLow = "--";
545 content.data[key].WarningHigh = "--";
546 }
547
548 tempKeyParts = key.split("/");
549 title = tempKeyParts.pop();
550 title = tempKeyParts.pop() + '_' + title;
551 title = title.split("_").map(function(item){
552 return item.toLowerCase().charAt(0).toUpperCase() + item.slice(1);
553 }).reduce(function(prev, el){
554 return prev + " " + el;
555 });
556
Iftekharul Islam96bbf312017-08-22 13:44:38 -0500557 content.data[key].Value = getScaledValue(content.data[key].Value, content.data[key].Scale);
Gunnar Mills022f5642018-02-07 14:30:17 -0600558 content.data[key].CriticalLow = getScaledValue(content.data[key].CriticalLow, content.data[key].Scale);
559 content.data[key].CriticalHigh = getScaledValue(content.data[key].CriticalHigh, content.data[key].Scale);
560 content.data[key].WarningLow = getScaledValue(content.data[key].WarningLow, content.data[key].Scale);
561 content.data[key].WarningHigh = getScaledValue(content.data[key].WarningHigh, content.data[key].Scale);
Iftekharul Islam8a122842017-09-11 10:58:16 -0500562 if(Constants.SENSOR_SORT_ORDER.indexOf(content.data[key].Unit) > -1){
563 customOrder = Constants.SENSOR_SORT_ORDER.indexOf(content.data[key].Unit);
564 }else{
565 customOrder = Constants.SENSOR_SORT_ORDER_DEFAULT;
566 }
567
Iftekharul Islamd2269e22017-05-02 09:32:45 -0500568 sensorData.push(Object.assign({
569 path: key,
570 selected: false,
571 confirm: false,
572 copied: false,
Iftekharul Islam8947e702017-07-27 10:28:07 -0500573 title: title,
574 unit: Constants.SENSOR_UNIT_MAP[content.data[key].Unit],
575 severity_flags: severity.flags,
576 status: severity.severityText,
577 order: severity.order,
Iftekharul Islam8a122842017-09-11 10:58:16 -0500578 custom_order: customOrder,
Iftekharul Islam8947e702017-07-27 10:28:07 -0500579 search_text: (title + " " + content.data[key].Value + " " +
580 Constants.SENSOR_UNIT_MAP[content.data[key].Unit] + " " +
581 severity.severityText + " " +
582 content.data[key].CriticalLow + " " +
583 content.data[key].CriticalHigh + " " +
584 content.data[key].WarningLow + " " +
585 content.data[key].WarningHigh + " "
586 ).toLowerCase(),
Iftekharul Islamd2269e22017-05-02 09:32:45 -0500587 original_data: {key: key, value: content.data[key]}
588 }, content.data[key]));
589 }
590 }
591
Iftekharul Islam8947e702017-07-27 10:28:07 -0500592 callback(sensorData, dataClone);
Ed Tanousbbcf6702017-10-06 13:53:06 -0700593 }, function(error){
Iftekharul Islamd2269e22017-05-02 09:32:45 -0500594 console.log(error);
595 });
Iftekharul Islamc0161392017-06-14 15:46:15 -0500596 },
Michael Davisdf3bd122017-08-10 11:03:42 -0500597 getFirmwares: function(){
598 var deferred = $q.defer();
Iftekharul Islamc0161392017-06-14 15:46:15 -0500599 $http({
600 method: 'GET',
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500601 url: DataService.getHost() + "/xyz/openbmc_project/software/enumerate",
Iftekharul Islamc0161392017-06-14 15:46:15 -0500602 headers: {
603 'Accept': 'application/json',
604 'Content-Type': 'application/json'
605 },
606 withCredentials: true
Ed Tanousbbcf6702017-10-06 13:53:06 -0700607 }).then(function(response){
608 var json = JSON.stringify(response.data);
Iftekharul Islamc0161392017-06-14 15:46:15 -0500609 var content = JSON.parse(json);
610 var data = [];
611 var active = false;
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500612 var functional = false;
613 var ready = false;
614 var activationStatus = {active: false, ready: false, functional: false};
Iftekharul Islamc0161392017-06-14 15:46:15 -0500615 var isExtended = false;
616 var bmcActiveVersion = "";
617 var hostActiveVersion = "";
618 var imageType = "";
619 var extendedVersions = [];
620
621 function getFormatedExtendedVersions(extendedVersion){
622 var versions = [];
623 extendedVersion = extendedVersion.split(",");
624
625 extendedVersion.forEach(function(item){
626 var parts = item.split("-");
627 var numberIndex = 0;
628 for(var i = 0; i < parts.length; i++){
629 if(/[0-9]/.test(parts[i])){
630 numberIndex = i;
631 break;
632 }
633 }
634 var titlePart = parts.splice(0, numberIndex);
635 titlePart = titlePart.join("");
636 titlePart = titlePart[0].toUpperCase() + titlePart.substr(1, titlePart.length);
637 var versionPart = parts.join("-");
638 versions.push({
639 title: titlePart,
640 version: versionPart
641 });
642 });
643
644 return versions;
645 }
646
647 for(var key in content.data){
648 if(content.data.hasOwnProperty(key) && content.data[key].hasOwnProperty('Version')){
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500649
650 functional = (content.data[key].Priority == 0);
Iftekharul Islam2a489552017-11-02 13:23:08 -0500651 active = !functional && (/\.Active$/).test(content.data[key].Activation);
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500652 ready = (/\.Ready$/).test(content.data[key].Activation);
653 activationStatus = {functional: functional, active: active, ready: ready};
Iftekharul Islamc0161392017-06-14 15:46:15 -0500654 imageType = content.data[key].Purpose.split(".").pop();
655 isExtended = content.data[key].hasOwnProperty('ExtendedVersion') && content.data[key].ExtendedVersion != "";
656 if(isExtended){
657 extendedVersions = getFormatedExtendedVersions(content.data[key].ExtendedVersion);
658 }
659 data.push(Object.assign({
660 path: key,
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500661 functional: functional,
662 activationFlags: activationStatus,
Iftekharul Islamc0161392017-06-14 15:46:15 -0500663 imageId: key.split("/").pop(),
664 imageType: imageType,
665 isExtended: isExtended,
666 extended: {
667 show: false,
668 versions: extendedVersions
669 },
670 data: {key: key, value: content.data[key]}
671 }, content.data[key]));
672
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500673 if(functional && imageType == 'BMC'){
Iftekharul Islamc0161392017-06-14 15:46:15 -0500674 bmcActiveVersion = content.data[key].Version;
675 }
676
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500677 if(functional && imageType == 'Host'){
Iftekharul Islamc0161392017-06-14 15:46:15 -0500678 hostActiveVersion = content.data[key].Version;
679 }
680 }
681 }
Michael Davisdf3bd122017-08-10 11:03:42 -0500682
683 deferred.resolve({
684 data: data,
685 bmcActiveVersion: bmcActiveVersion,
686 hostActiveVersion: hostActiveVersion
687 });
Ed Tanousbbcf6702017-10-06 13:53:06 -0700688 }, function(error){
Iftekharul Islamc0161392017-06-14 15:46:15 -0500689 console.log(error);
Michael Davisdf3bd122017-08-10 11:03:42 -0500690 deferred.reject(error);
Iftekharul Islamc0161392017-06-14 15:46:15 -0500691 });
Michael Davisdf3bd122017-08-10 11:03:42 -0500692
693 return deferred.promise;
Iftekharul Islamc0161392017-06-14 15:46:15 -0500694 },
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500695 changePriority: function(imageId, priority){
696 var deferred = $q.defer();
697 $http({
698 method: 'PUT',
699 url: DataService.getHost() + "/xyz/openbmc_project/software/" + imageId + "/attr/Priority",
700 headers: {
Iftekharul Islam2a489552017-11-02 13:23:08 -0500701 'Accept': 'application/json',
702 'Content-Type': 'application/json'
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500703 },
704 withCredentials: true,
705 data: JSON.stringify({"data": priority})
Ed Tanousbbcf6702017-10-06 13:53:06 -0700706 }).then(function(response){
707 var json = JSON.stringify(response.data);
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500708 var content = JSON.parse(json);
709 deferred.resolve(content);
Ed Tanousbbcf6702017-10-06 13:53:06 -0700710 }, function(error){
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500711 console.log(error);
712 deferred.reject(error);
713 });
714
715 return deferred.promise;
716 },
Iftekharul Islam2a489552017-11-02 13:23:08 -0500717 deleteImage: function(imageId){
718 var deferred = $q.defer();
719 $http({
720 method: 'POST',
721 url: DataService.getHost() + "/xyz/openbmc_project/software/" + imageId + "/action/Delete",
722 headers: {
723 'Accept': 'application/json',
724 'Content-Type': 'application/json'
725 },
726 withCredentials: true,
727 data: JSON.stringify({"data": []})
Ed Tanousbbcf6702017-10-06 13:53:06 -0700728 }).then(function(response){
729 var json = JSON.stringify(response.data);
Iftekharul Islam2a489552017-11-02 13:23:08 -0500730 var content = JSON.parse(json);
731 deferred.resolve(content);
Ed Tanousbbcf6702017-10-06 13:53:06 -0700732 }, function(error){
Iftekharul Islam2a489552017-11-02 13:23:08 -0500733 console.log(error);
734 deferred.reject(error);
735 });
736
737 return deferred.promise;
738 },
739 activateImage: function(imageId){
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500740 var deferred = $q.defer();
Iftekharul Islamc0161392017-06-14 15:46:15 -0500741 $http({
742 method: 'PUT',
Iftekharul Islam2a489552017-11-02 13:23:08 -0500743 url: DataService.getHost() + "/xyz/openbmc_project/software/" + imageId + "/attr/RequestedActivation",
744 headers: {
745 'Accept': 'application/json',
746 'Content-Type': 'application/json'
747 },
748 withCredentials: true,
749 data: JSON.stringify({"data": Constants.FIRMWARE.ACTIVATE_FIRMWARE})
Ed Tanousbbcf6702017-10-06 13:53:06 -0700750 }).then(function(response){
751 var json = JSON.stringify(response.data);
Iftekharul Islam2a489552017-11-02 13:23:08 -0500752 var content = JSON.parse(json);
753 deferred.resolve(content);
Ed Tanousbbcf6702017-10-06 13:53:06 -0700754 }, function(error){
Iftekharul Islam2a489552017-11-02 13:23:08 -0500755 console.log(error);
756 deferred.reject(error);
757 });
758
759 return deferred.promise;
760 },
761 uploadImage: function(file){
762 var deferred = $q.defer();
763 $http({
764 method: 'POST',
Iftekharul Islamc0161392017-06-14 15:46:15 -0500765 timeout: 5 * 60 * 1000,
Gunnar Millsdddb1492018-02-19 16:27:27 -0600766 url: DataService.getHost() + "/upload/image",
Iftekharul Islamc0161392017-06-14 15:46:15 -0500767 headers: {
Iftekharul Islam2a489552017-11-02 13:23:08 -0500768 'Content-Type': 'application/octet-stream'
Iftekharul Islamc0161392017-06-14 15:46:15 -0500769 },
770 withCredentials: true,
771 data: file
Ed Tanousbbcf6702017-10-06 13:53:06 -0700772 }).then(function(response){
773 var json = JSON.stringify(response.data);
Iftekharul Islamc0161392017-06-14 15:46:15 -0500774 var content = JSON.parse(json);
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500775 deferred.resolve(content);
Ed Tanousbbcf6702017-10-06 13:53:06 -0700776 }, function(error){
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500777 console.log(error);
778 deferred.reject(error);
Iftekharul Islamc0161392017-06-14 15:46:15 -0500779 });
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500780
781 return deferred.promise;
782 },
783 downloadImage: function(host, filename){
784 var deferred = $q.defer();
785 $http({
786 method: 'POST',
Gunnar Millse345cac2018-02-20 11:16:53 -0600787 url: DataService.getHost() + "/xyz/openbmc_project/software/action/DownloadViaTFTP",
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500788 headers: {
789 'Accept': 'application/json',
790 'Content-Type': 'application/json'
791 },
792 withCredentials: true,
Gunnar Millse345cac2018-02-20 11:16:53 -0600793 data: JSON.stringify({"data": [filename, host]}),
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500794 responseType: 'arraybuffer'
Ed Tanousbbcf6702017-10-06 13:53:06 -0700795 }).then(function(response, status, headers){
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500796 deferred.resolve({
797 data: response,
798 status: status,
799 headers: headers
800 });
Ed Tanousbbcf6702017-10-06 13:53:06 -0700801 }, function(error){
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500802 console.log(error);
803 deferred.reject(error);
804 });
805
806 return deferred.promise;
Iftekharul Islamc0161392017-06-14 15:46:15 -0500807 },
Michael Davisdf3bd122017-08-10 11:03:42 -0500808 getBMCEthernetInfo: function(){
809 var deferred = $q.defer();
Iftekharul Islam54c22e42017-06-28 11:06:16 -0500810 $http({
811 method: 'GET',
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500812 url: DataService.getHost() + "/xyz/openbmc_project/inventory/system/chassis/motherboard/boxelder/bmc/ethernet",
Iftekharul Islam54c22e42017-06-28 11:06:16 -0500813 headers: {
814 'Accept': 'application/json',
815 'Content-Type': 'application/json'
816 },
817 withCredentials: true
Ed Tanousbbcf6702017-10-06 13:53:06 -0700818 }).then(function(response){
819 var json = JSON.stringify(response.data);
Michael Davisdf3bd122017-08-10 11:03:42 -0500820 var content = JSON.parse(json);
821 deferred.resolve(content.data);
Ed Tanousbbcf6702017-10-06 13:53:06 -0700822 }, function(error){
Iftekharul Islam54c22e42017-06-28 11:06:16 -0500823 console.log(error);
Michael Davisdf3bd122017-08-10 11:03:42 -0500824 deferred.reject(error);
Iftekharul Islam54c22e42017-06-28 11:06:16 -0500825 });
Michael Davisdf3bd122017-08-10 11:03:42 -0500826
827 return deferred.promise;
Iftekharul Islam54c22e42017-06-28 11:06:16 -0500828 },
829 getBMCInfo: function(callback){
Michael Davisdf3bd122017-08-10 11:03:42 -0500830 var deferred = $q.defer();
Iftekharul Islam54c22e42017-06-28 11:06:16 -0500831 $http({
832 method: 'GET',
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500833 url: DataService.getHost() + "/xyz/openbmc_project/inventory/system/chassis/motherboard/boxelder/bmc",
Iftekharul Islam54c22e42017-06-28 11:06:16 -0500834 headers: {
835 'Accept': 'application/json',
836 'Content-Type': 'application/json'
837 },
838 withCredentials: true
Ed Tanousbbcf6702017-10-06 13:53:06 -0700839 }).then(function(response){
840 var json = JSON.stringify(response.data);
Michael Davisdf3bd122017-08-10 11:03:42 -0500841 var content = JSON.parse(json);
842 deferred.resolve(content.data);
Ed Tanousbbcf6702017-10-06 13:53:06 -0700843 }, function(error){
Iftekharul Islam54c22e42017-06-28 11:06:16 -0500844 console.log(error);
Michael Davisdf3bd122017-08-10 11:03:42 -0500845 deferred.reject(error);
Iftekharul Islam54c22e42017-06-28 11:06:16 -0500846 });
Michael Davisdf3bd122017-08-10 11:03:42 -0500847 return deferred.promise;
Iftekharul Islam54c22e42017-06-28 11:06:16 -0500848 },
Iftekharul Islamee27d752017-07-05 15:54:31 -0500849 getHardwares: function(callback){
850 $http({
851 method: 'GET',
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500852 url: DataService.getHost() + "/xyz/openbmc_project/inventory/enumerate",
Iftekharul Islamee27d752017-07-05 15:54:31 -0500853 headers: {
854 'Accept': 'application/json',
855 'Content-Type': 'application/json'
856 },
857 withCredentials: true
Ed Tanousbbcf6702017-10-06 13:53:06 -0700858 }).then(function(response){
859 var json = JSON.stringify(response.data);
Iftekharul Islamee27d752017-07-05 15:54:31 -0500860 var content = JSON.parse(json);
861 var hardwareData = [];
862 var keyIndexMap = {};
863 var title = "";
864 var data = [];
865 var searchText = "";
866 var componentIndex = -1;
867 var tempParts = [];
868
869
870 function isSubComponent(key){
871
872 for(var i = 0; i < Constants.HARDWARE.parent_components.length; i++){
873 if(key.split(Constants.HARDWARE.parent_components[i]).length == 2) return true;
874 }
875
876 return false;
877 }
878
879 function titlelize(title){
880 title = title.replace(/([A-Z0-9]+)/g, " $1").replace(/^\s+/, "");
881 for(var i = 0; i < Constants.HARDWARE.uppercase_titles.length; i++){
882 if(title.toLowerCase().indexOf((Constants.HARDWARE.uppercase_titles[i] + " ")) > -1){
883 return title.toUpperCase();
884 }
885 }
886
887 return title;
888 }
889
890 function camelcaseToLabel(obj){
Iftekharul Islam8947e702017-07-27 10:28:07 -0500891 var transformed = [], label = "", value = "";
Iftekharul Islamee27d752017-07-05 15:54:31 -0500892 for(var key in obj){
893 label = key.replace(/([A-Z0-9]+)/g, " $1").replace(/^\s+/, "");
894 if(obj[key] !== ""){
Iftekharul Islam8947e702017-07-27 10:28:07 -0500895 value = obj[key];
896 if(value == 1 || value == 0){
897 value = (value == 1) ? 'Yes' : 'No';
898 }
899 transformed.push({key:label, value: value});
Iftekharul Islamee27d752017-07-05 15:54:31 -0500900 }
901 }
902
903 return transformed;
904 }
905
906 function getSearchText(data){
907 var searchText = "";
908 for(var i = 0; i < data.length; i++){
909 searchText += " " + data[i].key + " " + data[i].value;
910 }
911
912 return searchText;
913 }
914
915 for(var key in content.data){
916 if(content.data.hasOwnProperty(key) &&
917 key.indexOf(Constants.HARDWARE.component_key_filter) == 0){
918
919 data = camelcaseToLabel(content.data[key]);
920 searchText = getSearchText(data);
921 title = key.split("/").pop();
922
923 title = titlelize(title);
924
925 if(!isSubComponent(key)){
926 hardwareData.push(Object.assign({
927 path: key,
928 title: title,
929 selected: false,
930 expanded: false,
931 search_text: title.toLowerCase() + " " + searchText.toLowerCase(),
932 sub_components: [],
933 original_data: {key: key, value: content.data[key]}
934 }, {items: data}));
935
936 keyIndexMap[key] = hardwareData.length - 1;
937 }else{
938 var tempParts = key.split("/");
939 tempParts.pop();
940 tempParts = tempParts.join("/");
941 componentIndex = keyIndexMap[tempParts];
942 data = content.data[key];
943 data.title = title;
944 hardwareData[componentIndex].sub_components.push(data);
945 hardwareData[componentIndex].search_text += " " + title.toLowerCase();
946 }
947 }
948 }
949
950 if(callback){
951 callback(hardwareData, content.data);
952 }else{
953 return { data: hardwareData, original_data: content.data};
954 }
955 });
956 },
Iftekharul Islamf2d74642017-07-10 16:42:14 -0500957 deleteLogs: function(logs) {
958 var defer = $q.defer();
959 var promises = [];
960
961 function finished(){
962 defer.resolve();
963 }
964
965 logs.forEach(function(item){
966 promises.push($http({
967 method: 'POST',
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500968 url: DataService.getHost() + "/xyz/openbmc_project/logging/entry/"+item.Id+"/action/Delete",
Iftekharul Islamf2d74642017-07-10 16:42:14 -0500969 headers: {
970 'Accept': 'application/json',
971 'Content-Type': 'application/json'
972 },
973 withCredentials: true,
974 data: JSON.stringify({"data": []})
975 }));
976 });
977
978 $q.all(promises).then(finished);
979
980 return defer.promise;
981 },
982 resolveLogs: function(logs) {
983 var defer = $q.defer();
984 var promises = [];
985
986 function finished(){
987 defer.resolve();
988 }
989
990 logs.forEach(function(item){
991 promises.push($http({
992 method: 'PUT',
Iftekharul Islam1acb4122017-11-02 13:20:32 -0500993 url: DataService.getHost() + "/xyz/openbmc_project/logging/entry/"+item.Id+"/attr/Resolved",
Iftekharul Islamf2d74642017-07-10 16:42:14 -0500994 headers: {
995 'Accept': 'application/json',
996 'Content-Type': 'application/json'
997 },
998 withCredentials: true,
999 data: JSON.stringify({"data": "1"})
1000 }));
1001 });
1002
1003 $q.all(promises).then(finished);
1004
1005 return defer.promise;
1006 },
Iftekharul Islam99d199f2017-03-24 15:28:25 -05001007 };
1008 return SERVICE;
1009 }]);
1010
1011 })(window.angular);