k2hr3-api 1.0.42 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/k2hr3-init.sh.templ +4 -4
- package/dist/.gitkeep +0 -0
- package/dist/src/app.js +262 -0
- package/{bin → dist/src/bin}/run.sh +1 -1
- package/dist/src/bin/watcher.js +113 -0
- package/dist/src/bin/www.js +217 -0
- package/dist/src/lib/basicipcheck.js +392 -0
- package/dist/src/lib/cacerts.js +106 -0
- package/dist/src/lib/dbglogging.js +190 -0
- package/dist/src/lib/dummyuserapi.js +719 -0
- package/dist/src/lib/ipwatch.js +354 -0
- package/dist/src/lib/k2hr3acrutil.js +532 -0
- package/dist/src/lib/k2hr3apiutil.js +1444 -0
- package/dist/src/lib/k2hr3cliutil.js +183 -0
- package/dist/src/lib/k2hr3config.js +832 -0
- package/dist/src/lib/k2hr3cryptutil.js +258 -0
- package/dist/src/lib/k2hr3dkc.js +12121 -0
- package/dist/src/lib/k2hr3extdata.js +198 -0
- package/dist/src/lib/k2hr3keys.js +207 -0
- package/dist/src/lib/k2hr3resutil.js +111 -0
- package/dist/src/lib/k2hr3template.js +6546 -0
- package/dist/src/lib/k2hr3tokens.js +2643 -0
- package/dist/src/lib/k2hr3userdata.js +296 -0
- package/dist/src/lib/k8soidc.js +1000 -0
- package/dist/src/lib/openstackapiv2.js +695 -0
- package/dist/src/lib/openstackapiv3.js +932 -0
- package/dist/src/lib/openstackep.js +667 -0
- package/{tests/auto_common.js → dist/src/lib/types.js} +4 -38
- package/dist/src/routes/acr.js +704 -0
- package/dist/src/routes/debugVerify.js +294 -0
- package/dist/src/routes/extdata.js +219 -0
- package/dist/src/routes/list.js +264 -0
- package/dist/src/routes/policy.js +840 -0
- package/dist/src/routes/resource.js +1489 -0
- package/dist/src/routes/role.js +2627 -0
- package/dist/src/routes/service.js +908 -0
- package/dist/src/routes/tenant.js +1141 -0
- package/dist/src/routes/userTokens.js +482 -0
- package/dist/src/routes/userdata.js +212 -0
- package/dist/src/routes/version.js +103 -0
- package/package.json +152 -121
- package/ChangeLog +0 -378
- package/app.js +0 -292
- package/bin/watcher +0 -122
- package/bin/www +0 -180
- package/eslint.config.mjs +0 -68
- package/lib/basicipcheck.js +0 -376
- package/lib/cacerts.js +0 -71
- package/lib/dbglogging.js +0 -151
- package/lib/dummyuserapi.js +0 -766
- package/lib/ipwatch.js +0 -379
- package/lib/k2hr3acrutil.js +0 -516
- package/lib/k2hr3apiutil.js +0 -1494
- package/lib/k2hr3cliutil.js +0 -191
- package/lib/k2hr3config.js +0 -826
- package/lib/k2hr3cryptutil.js +0 -254
- package/lib/k2hr3dkc.js +0 -12632
- package/lib/k2hr3extdata.js +0 -198
- package/lib/k2hr3keys.js +0 -234
- package/lib/k2hr3resutil.js +0 -100
- package/lib/k2hr3template.js +0 -6925
- package/lib/k2hr3tokens.js +0 -2799
- package/lib/k2hr3userdata.js +0 -312
- package/lib/k8soidc.js +0 -1012
- package/lib/openstackapiv2.js +0 -764
- package/lib/openstackapiv3.js +0 -1032
- package/lib/openstackep.js +0 -553
- package/routes/acr.js +0 -738
- package/routes/debugVerify.js +0 -263
- package/routes/extdata.js +0 -232
- package/routes/list.js +0 -270
- package/routes/policy.js +0 -869
- package/routes/resource.js +0 -1441
- package/routes/role.js +0 -2664
- package/routes/service.js +0 -894
- package/routes/tenant.js +0 -1095
- package/routes/userTokens.js +0 -511
- package/routes/userdata.js +0 -218
- package/routes/version.js +0 -108
- package/templ/Dockerfile.templ +0 -71
- package/tests/auto_acr.js +0 -1101
- package/tests/auto_acr_spec.js +0 -79
- package/tests/auto_all_spec.js +0 -142
- package/tests/auto_control_subprocess.sh +0 -243
- package/tests/auto_extdata.js +0 -220
- package/tests/auto_extdata_spec.js +0 -79
- package/tests/auto_init_config_json.sh +0 -275
- package/tests/auto_k2hdkc_server.ini +0 -109
- package/tests/auto_k2hdkc_slave.ini +0 -83
- package/tests/auto_list.js +0 -439
- package/tests/auto_list_spec.js +0 -79
- package/tests/auto_policy.js +0 -1579
- package/tests/auto_policy_spec.js +0 -79
- package/tests/auto_resource.js +0 -10956
- package/tests/auto_resource_spec.js +0 -79
- package/tests/auto_role.js +0 -6150
- package/tests/auto_role_spec.js +0 -79
- package/tests/auto_service.js +0 -770
- package/tests/auto_service_spec.js +0 -79
- package/tests/auto_subprocesses.js +0 -114
- package/tests/auto_template.sh +0 -126
- package/tests/auto_tenant.js +0 -1100
- package/tests/auto_tenant_spec.js +0 -79
- package/tests/auto_token_util.js +0 -219
- package/tests/auto_userdata.js +0 -292
- package/tests/auto_userdata_spec.js +0 -79
- package/tests/auto_usertokens.js +0 -565
- package/tests/auto_usertokens_spec.js +0 -79
- package/tests/auto_version.js +0 -127
- package/tests/auto_version_spec.js +0 -79
- package/tests/auto_watcher.js +0 -157
- package/tests/auto_watcher_spec.js +0 -79
- package/tests/k2hdkc_test.data +0 -986
- package/tests/k2hdkc_test_load.sh +0 -255
- package/tests/k2hr3template_test.js +0 -187
- package/tests/k2hr3template_test.sh +0 -339
- package/tests/k2hr3template_test_async.js +0 -216
- package/tests/k2hr3template_test_template.result +0 -7117
- package/tests/k2hr3template_test_template.txt +0 -3608
- package/tests/k2hr3template_test_vars.js +0 -194
- package/tests/manual_acr_delete.js +0 -143
- package/tests/manual_acr_get.js +0 -297
- package/tests/manual_acr_postput.js +0 -215
- package/tests/manual_allusertenant_get.js +0 -113
- package/tests/manual_extdata_get.js +0 -191
- package/tests/manual_k2hr3keys_get.js +0 -84
- package/tests/manual_list_gethead.js +0 -230
- package/tests/manual_policy_delete.js +0 -132
- package/tests/manual_policy_gethead.js +0 -275
- package/tests/manual_policy_postput.js +0 -297
- package/tests/manual_resource_delete.js +0 -433
- package/tests/manual_resource_gethead.js +0 -423
- package/tests/manual_resource_postput.js +0 -487
- package/tests/manual_role_delete.js +0 -404
- package/tests/manual_role_gethead.js +0 -547
- package/tests/manual_role_postput.js +0 -544
- package/tests/manual_service_delete.js +0 -153
- package/tests/manual_service_gethead.js +0 -178
- package/tests/manual_service_postput.js +0 -348
- package/tests/manual_tenant_delete.js +0 -186
- package/tests/manual_tenant_gethead.js +0 -268
- package/tests/manual_tenant_postput.js +0 -293
- package/tests/manual_test.sh +0 -352
- package/tests/manual_userdata_get.js +0 -173
- package/tests/manual_usertoken_gethead.js +0 -136
- package/tests/manual_usertoken_postput.js +0 -310
- package/tests/manual_version_get.js +0 -127
- package/tests/run_local_test_k2hdkc.sh +0 -174
- package/tests/test.sh +0 -333
|
@@ -1,404 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* K2HR3 REST API
|
|
3
|
-
*
|
|
4
|
-
* Copyright 2017 Yahoo Japan Corporation.
|
|
5
|
-
*
|
|
6
|
-
* K2HR3 is K2hdkc based Resource and Roles and policy Rules, gathers
|
|
7
|
-
* common management information for the cloud.
|
|
8
|
-
* K2HR3 can dynamically manage information as "who", "what", "operate".
|
|
9
|
-
* These are stored as roles, resources, policies in K2hdkc, and the
|
|
10
|
-
* client system can dynamically read and modify these information.
|
|
11
|
-
*
|
|
12
|
-
* For the full copyright and license information, please view
|
|
13
|
-
* the license file that was distributed with this source code.
|
|
14
|
-
*
|
|
15
|
-
* AUTHOR: Takeshi Nakatani
|
|
16
|
-
* CREATE: Wed Jun 8 2017
|
|
17
|
-
* REVISION:
|
|
18
|
-
*
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
'use strict';
|
|
22
|
-
|
|
23
|
-
var http = require('http');
|
|
24
|
-
var https = require('https');
|
|
25
|
-
|
|
26
|
-
var cacerts = require('../lib/cacerts');
|
|
27
|
-
var apiutil = require('../lib/k2hr3apiutil');
|
|
28
|
-
var cliutil = require('../lib/k2hr3cliutil');
|
|
29
|
-
|
|
30
|
-
// Debug logging objects
|
|
31
|
-
var r3logger = require('../lib/dbglogging');
|
|
32
|
-
|
|
33
|
-
//
|
|
34
|
-
// Hostname and port from env
|
|
35
|
-
//
|
|
36
|
-
var hostname = apiutil.getSafeString(process.env.APIHOST);
|
|
37
|
-
var hostport = apiutil.getSafeString(process.env.APIPORT);
|
|
38
|
-
var is_https = apiutil.compareCaseString('yes', process.env.HTTPS_ENV);
|
|
39
|
-
|
|
40
|
-
//
|
|
41
|
-
// Request API for test
|
|
42
|
-
//
|
|
43
|
-
function deleteV1Role(token, name, target_host, port, cuk)
|
|
44
|
-
{
|
|
45
|
-
var headers = {
|
|
46
|
-
'Content-Type': 'application/json',
|
|
47
|
-
'Content-Length': 0,
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
if(apiutil.isSafeString(token)){
|
|
51
|
-
headers['X-Auth-Token'] = token;
|
|
52
|
-
}
|
|
53
|
-
var urlarg = '';
|
|
54
|
-
var already_set = false;
|
|
55
|
-
if(apiutil.isSafeString(target_host)){
|
|
56
|
-
urlarg += already_set ? '&host=' : '?host=';
|
|
57
|
-
urlarg += target_host;
|
|
58
|
-
already_set = true;
|
|
59
|
-
}
|
|
60
|
-
if(apiutil.isSafeEntity(port) && !isNaN(port)){
|
|
61
|
-
urlarg += already_set ? '&port=' : '?port=';
|
|
62
|
-
urlarg += String(port);
|
|
63
|
-
}
|
|
64
|
-
if(apiutil.isSafeString(cuk)){
|
|
65
|
-
urlarg += already_set ? '&cuk=' : '?cuk=';
|
|
66
|
-
urlarg += cuk;
|
|
67
|
-
already_set = true;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
var options = {
|
|
71
|
-
'host': hostname,
|
|
72
|
-
'port': hostport,
|
|
73
|
-
'path': '/v1/role/' + name + encodeURI(urlarg),
|
|
74
|
-
'method': 'DELETE',
|
|
75
|
-
'headers': headers
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
r3logger.dlog('request options = ' + JSON.stringify(options));
|
|
79
|
-
r3logger.dlog('request headers = ' + JSON.stringify(headers));
|
|
80
|
-
|
|
81
|
-
var httpobj;
|
|
82
|
-
if(is_https){
|
|
83
|
-
if(null !== cacerts.ca){
|
|
84
|
-
options.ca = cacerts.ca;
|
|
85
|
-
}
|
|
86
|
-
options.rejectUnauthorized = false; // always insecure for this manual test
|
|
87
|
-
options.agent = new https.Agent(options);
|
|
88
|
-
httpobj = https;
|
|
89
|
-
}else{
|
|
90
|
-
options.agent = new http.Agent(options);
|
|
91
|
-
httpobj = http;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
var req = httpobj.request(options, function(res)
|
|
95
|
-
{
|
|
96
|
-
var response = '';
|
|
97
|
-
console.log('RESPONSE CODE = ' + res.statusCode);
|
|
98
|
-
r3logger.dlog('response status = ' + res.statusCode);
|
|
99
|
-
r3logger.dlog('response header = ' + JSON.stringify(res.headers));
|
|
100
|
-
res.setEncoding('utf8');
|
|
101
|
-
|
|
102
|
-
res.on('data', function (chunk)
|
|
103
|
-
{
|
|
104
|
-
r3logger.dlog('response chunk = ' + chunk);
|
|
105
|
-
response += chunk;
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
res.on('end', function(result) // eslint-disable-line no-unused-vars
|
|
109
|
-
{
|
|
110
|
-
r3logger.mlog(r3logger.dump(response)); // response is object(or not)
|
|
111
|
-
console.log('RESPONSE BODY = ' + JSON.stringify(response));
|
|
112
|
-
process.exit(0);
|
|
113
|
-
});
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
req.on('error', function(e)
|
|
117
|
-
{
|
|
118
|
-
r3logger.elog('problem with request: ' + e.message);
|
|
119
|
-
});
|
|
120
|
-
req.end();
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
//
|
|
124
|
-
// Request API for test
|
|
125
|
-
//
|
|
126
|
-
function deleteV1_IPByCuk(addrs, port, cuk)
|
|
127
|
-
{
|
|
128
|
-
var headers = {
|
|
129
|
-
'Content-Type': 'application/json',
|
|
130
|
-
'Content-Length': 0,
|
|
131
|
-
};
|
|
132
|
-
|
|
133
|
-
var urlarg = '';
|
|
134
|
-
var already_set = false;
|
|
135
|
-
if(apiutil.isSafeEntity(addrs)){
|
|
136
|
-
urlarg += already_set ? '&host=' : '?host=';
|
|
137
|
-
if(apiutil.isArray(addrs)){
|
|
138
|
-
urlarg += JSON.stringify(addrs);
|
|
139
|
-
}else{
|
|
140
|
-
urlarg += addrs;
|
|
141
|
-
}
|
|
142
|
-
already_set = true;
|
|
143
|
-
}
|
|
144
|
-
if(apiutil.isSafeString(cuk)){
|
|
145
|
-
urlarg += already_set ? '&cuk=' : '?cuk=';
|
|
146
|
-
urlarg += cuk;
|
|
147
|
-
already_set = true;
|
|
148
|
-
}
|
|
149
|
-
if(null !== port && !isNaN(port)){
|
|
150
|
-
urlarg += already_set ? '&port=' : '?port=';
|
|
151
|
-
urlarg += String(port);
|
|
152
|
-
already_set = true;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
var options = {
|
|
156
|
-
'host': hostname,
|
|
157
|
-
'port': hostport,
|
|
158
|
-
'path': '/v1/role' + encodeURI(urlarg),
|
|
159
|
-
'method': 'DELETE',
|
|
160
|
-
'headers': headers
|
|
161
|
-
};
|
|
162
|
-
|
|
163
|
-
r3logger.dlog('request options = ' + JSON.stringify(options));
|
|
164
|
-
r3logger.dlog('request headers = ' + JSON.stringify(headers));
|
|
165
|
-
|
|
166
|
-
var httpobj;
|
|
167
|
-
if(is_https){
|
|
168
|
-
if(null !== cacerts.ca){
|
|
169
|
-
options.ca = cacerts.ca;
|
|
170
|
-
}
|
|
171
|
-
options.rejectUnauthorized = false; // always insecure for this manual test
|
|
172
|
-
options.agent = new https.Agent(options);
|
|
173
|
-
httpobj = https;
|
|
174
|
-
}else{
|
|
175
|
-
options.agent = new http.Agent(options);
|
|
176
|
-
httpobj = http;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
var req = httpobj.request(options, function(res)
|
|
180
|
-
{
|
|
181
|
-
var response = '';
|
|
182
|
-
console.log('RESPONSE CODE = ' + res.statusCode);
|
|
183
|
-
r3logger.dlog('response status = ' + res.statusCode);
|
|
184
|
-
r3logger.dlog('response header = ' + JSON.stringify(res.headers));
|
|
185
|
-
res.setEncoding('utf8');
|
|
186
|
-
|
|
187
|
-
res.on('data', function (chunk)
|
|
188
|
-
{
|
|
189
|
-
r3logger.dlog('response chunk = ' + chunk);
|
|
190
|
-
response += chunk;
|
|
191
|
-
});
|
|
192
|
-
|
|
193
|
-
res.on('end', function(result) // eslint-disable-line no-unused-vars
|
|
194
|
-
{
|
|
195
|
-
r3logger.mlog(r3logger.dump(response)); // response is object(or not)
|
|
196
|
-
console.log('RESPONSE BODY = ' + JSON.stringify(response));
|
|
197
|
-
process.exit(0);
|
|
198
|
-
});
|
|
199
|
-
});
|
|
200
|
-
|
|
201
|
-
req.on('error', function(e)
|
|
202
|
-
{
|
|
203
|
-
r3logger.elog('problem with request: ' + e.message);
|
|
204
|
-
});
|
|
205
|
-
req.end();
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
//
|
|
209
|
-
// run
|
|
210
|
-
//
|
|
211
|
-
cliutil.getConsoleInput('Delete ROLE/TOKEN(role)/HOST(name or ip)/IP/CUK : ', true, false, function(isbreak, type)
|
|
212
|
-
{
|
|
213
|
-
if(isbreak){
|
|
214
|
-
process.exit(0);
|
|
215
|
-
}
|
|
216
|
-
var _type = type;
|
|
217
|
-
if(apiutil.compareCaseString('ROLE', type)){
|
|
218
|
-
_type = 'role';
|
|
219
|
-
}else if(apiutil.compareCaseString('TOKEN', type)){
|
|
220
|
-
_type = 'token';
|
|
221
|
-
}else if(apiutil.compareCaseString('HOST', type)){
|
|
222
|
-
_type = 'host';
|
|
223
|
-
}else if(apiutil.compareCaseString('IP', type)){
|
|
224
|
-
_type = 'ip';
|
|
225
|
-
}else if(apiutil.compareCaseString('CUK', type)){
|
|
226
|
-
_type = 'cuk';
|
|
227
|
-
}else{
|
|
228
|
-
console.log('token type must be USER or ROLE or HOST or IP : ' + JSON.stringify(type));
|
|
229
|
-
process.exit(0);
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
if('cuk' === _type){
|
|
233
|
-
cliutil.getConsoleInput('IP addrs(null=all, one ip, multi ip with ",") : ', true, false, function(isbreak, addrs)
|
|
234
|
-
{
|
|
235
|
-
if(isbreak){
|
|
236
|
-
process.exit(0);
|
|
237
|
-
}
|
|
238
|
-
var _addrs = null;
|
|
239
|
-
if(apiutil.isSafeString(addrs)){
|
|
240
|
-
_addrs = new Array();
|
|
241
|
-
var tmpaddrarr = addrs.split(',');
|
|
242
|
-
for(var cnt = 0; cnt < tmpaddrarr.length; ++cnt){
|
|
243
|
-
if(apiutil.isSafeString(tmpaddrarr[cnt].trim())){
|
|
244
|
-
_addrs.push(apiutil.getSafeString(tmpaddrarr[cnt].trim()));
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
if(0 == _addrs.length){
|
|
248
|
-
_addrs = null;
|
|
249
|
-
}else if(1 == _addrs.length){
|
|
250
|
-
_addrs = _addrs[0];
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
cliutil.getConsoleInput('Delete by CUK(allow empty) : ', true, false, function(isbreak, cuk)
|
|
255
|
-
{
|
|
256
|
-
if(isbreak){
|
|
257
|
-
process.exit(0);
|
|
258
|
-
}
|
|
259
|
-
var _cuk = null;
|
|
260
|
-
if(apiutil.isSafeString(cuk) && apiutil.isSafeString(cuk.trim())){
|
|
261
|
-
_cuk = cuk.trim();
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
cliutil.getConsoleInput('Delete by port(allow empty) : ', true, false, function(isbreak, port)
|
|
265
|
-
{
|
|
266
|
-
if(isbreak){
|
|
267
|
-
process.exit(0);
|
|
268
|
-
}
|
|
269
|
-
var _port = null;
|
|
270
|
-
if(!isNaN(port)){
|
|
271
|
-
_port = parseInt(port);
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
// run
|
|
275
|
-
deleteV1_IPByCuk(_addrs, _port, _cuk);
|
|
276
|
-
});
|
|
277
|
-
});
|
|
278
|
-
});
|
|
279
|
-
|
|
280
|
-
}else{
|
|
281
|
-
cliutil.getConsoleInput('Role name or path(full yrn for IP) : ', true, false, function(isbreak, name)
|
|
282
|
-
{
|
|
283
|
-
if(isbreak){
|
|
284
|
-
process.exit(0);
|
|
285
|
-
}
|
|
286
|
-
var _name = name;
|
|
287
|
-
|
|
288
|
-
if('ip' === _type){
|
|
289
|
-
cliutil.getConsoleInput('Delete host port(default 0) : ', true, false, function(isbreak, port)
|
|
290
|
-
{
|
|
291
|
-
if(isbreak){
|
|
292
|
-
process.exit(0);
|
|
293
|
-
}
|
|
294
|
-
var _port = 0;
|
|
295
|
-
if(!apiutil.isSafeEntity(port)){
|
|
296
|
-
_port = 0;
|
|
297
|
-
}else if(!isNaN(port)){
|
|
298
|
-
_port = port;
|
|
299
|
-
}else{
|
|
300
|
-
console.log('port number must be decimal number or empty(empty means 0=any port) : ' + JSON.stringify(port));
|
|
301
|
-
process.exit(0);
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
cliutil.getConsoleInput('Delete host CUK(default empty) : ', true, false, function(isbreak, cuk)
|
|
305
|
-
{
|
|
306
|
-
if(isbreak){
|
|
307
|
-
process.exit(0);
|
|
308
|
-
}
|
|
309
|
-
var _cuk = null;
|
|
310
|
-
if(apiutil.isSafeString(cuk) && apiutil.isSafeString(cuk.trim())){
|
|
311
|
-
_cuk = cuk.trim();
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
// run
|
|
315
|
-
deleteV1Role(null, _name, null, _port, _cuk);
|
|
316
|
-
});
|
|
317
|
-
});
|
|
318
|
-
|
|
319
|
-
}else if('host' === _type){
|
|
320
|
-
cliutil.getConsoleInput('Scoped user token : ', true, false, function(isbreak, token)
|
|
321
|
-
{
|
|
322
|
-
if(isbreak){
|
|
323
|
-
process.exit(0);
|
|
324
|
-
}
|
|
325
|
-
var _token = 'U=' + token;
|
|
326
|
-
|
|
327
|
-
cliutil.getConsoleInput('Delete hostname or ip address : ', true, false, function(isbreak, hostname)
|
|
328
|
-
{
|
|
329
|
-
if(isbreak){
|
|
330
|
-
process.exit(0);
|
|
331
|
-
}
|
|
332
|
-
var _hostname = hostname;
|
|
333
|
-
if(!apiutil.isSafeString(hostname)){
|
|
334
|
-
process.exit(0);
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
cliutil.getConsoleInput('Delete host port(default 0) : ', true, false, function(isbreak, port)
|
|
338
|
-
{
|
|
339
|
-
if(isbreak){
|
|
340
|
-
process.exit(0);
|
|
341
|
-
}
|
|
342
|
-
var _port = 0;
|
|
343
|
-
if(!apiutil.isSafeEntity(port)){
|
|
344
|
-
_port = 0;
|
|
345
|
-
}else if(!isNaN(port)){
|
|
346
|
-
_port = port;
|
|
347
|
-
}else{
|
|
348
|
-
console.log('port number must be decimal number or empty(empty means 0=any port) : ' + JSON.stringify(port));
|
|
349
|
-
process.exit(0);
|
|
350
|
-
}
|
|
351
|
-
|
|
352
|
-
cliutil.getConsoleInput('Delete host CUK(default empty) : ', true, false, function(isbreak, cuk)
|
|
353
|
-
{
|
|
354
|
-
if(isbreak){
|
|
355
|
-
process.exit(0);
|
|
356
|
-
}
|
|
357
|
-
var _cuk = null;
|
|
358
|
-
if(apiutil.isSafeString(cuk) && apiutil.isSafeString(cuk.trim())){
|
|
359
|
-
_cuk = cuk.trim();
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
// run
|
|
363
|
-
deleteV1Role(_token, _name, _hostname, _port, _cuk);
|
|
364
|
-
});
|
|
365
|
-
});
|
|
366
|
-
});
|
|
367
|
-
});
|
|
368
|
-
|
|
369
|
-
}else if('token' === _type){
|
|
370
|
-
cliutil.getConsoleInput('Scoped role token : ', true, false, function(isbreak, token)
|
|
371
|
-
{
|
|
372
|
-
if(isbreak){
|
|
373
|
-
process.exit(0);
|
|
374
|
-
}
|
|
375
|
-
var _token = 'R=' + token;
|
|
376
|
-
|
|
377
|
-
// run
|
|
378
|
-
deleteV1Role(_token, _name);
|
|
379
|
-
});
|
|
380
|
-
|
|
381
|
-
}else{ // role
|
|
382
|
-
cliutil.getConsoleInput('Scoped user token : ', true, false, function(isbreak, token)
|
|
383
|
-
{
|
|
384
|
-
if(isbreak){
|
|
385
|
-
process.exit(0);
|
|
386
|
-
}
|
|
387
|
-
var _token = 'U=' + token;
|
|
388
|
-
|
|
389
|
-
// run
|
|
390
|
-
deleteV1Role(_token, _name);
|
|
391
|
-
});
|
|
392
|
-
}
|
|
393
|
-
});
|
|
394
|
-
}
|
|
395
|
-
});
|
|
396
|
-
|
|
397
|
-
/*
|
|
398
|
-
* Local variables:
|
|
399
|
-
* tab-width: 4
|
|
400
|
-
* c-basic-offset: 4
|
|
401
|
-
* End:
|
|
402
|
-
* vim600: noexpandtab sw=4 ts=4 fdm=marker
|
|
403
|
-
* vim<600: noexpandtab sw=4 ts=4
|
|
404
|
-
*/
|