forked from robtweed/qewd-baseline
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathshutdown.js
70 lines (60 loc) · 2.83 KB
/
shutdown.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/*
----------------------------------------------------------------------------
| QEWD-JSdb: Clean Container Shutdown |
| |
| Copyright (c) 2019 M/Gateway Developments Ltd, |
| Redhill, Surrey UK. |
| All rights reserved. |
| |
| http://www.mgateway.com |
| Email: rtweed@mgateway.com |
| |
| |
| 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. |
----------------------------------------------------------------------------
5 December 2019
*/
module.exports = function() {
var fs = this.fs;
var requestSync = this.requestSync;
var config;
var config_path = '/node/configuration/config.json';
if (!fs.existsSync(config_path)) {
console.log('Error: unable to find ' + config_path);
console.log('*** Unable to continue shutting down the QEWD Container');
return;
}
try {
config = require(config_path);
}
catch(err) {
console.log('Error: unable to load ' + config_path);
console.log(err);
console.log('*** Unable to continue shutting down the QEWD Container');
return;
}
var password = config.qewd.managementPassword;
var secret = config.jwt.secret;
var auth = 'Basic ' + Buffer.from(password + ':' + secret).toString('base64');
var options = {
url: 'http://qewd:' + config.qewd.port + '/qewd/shutdown',
method: 'POST',
headers: {
Authorization: auth,
'Content-type': 'application/json'
}
};
var result = this.requestSync.send(options);
console.log(result);
console.log('QEWD Container has been signalled to stop');
};