k2hr3-api 1.0.38 → 1.0.40
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/ChangeLog +12 -0
- package/README.md +31 -31
- package/app.js +6 -10
- package/bin/run.sh +21 -21
- package/bin/www +1 -1
- package/config/k2hr3-init.sh.templ +5 -5
- package/eslint.config.mjs +68 -0
- package/lib/cacerts.js +8 -7
- package/lib/dummyuserapi.js +1 -1
- package/lib/ipwatch.js +1 -1
- package/lib/k2hr3acrutil.js +12 -14
- package/lib/k2hr3apiutil.js +5 -5
- package/lib/k2hr3cryptutil.js +2 -0
- package/lib/k2hr3dkc.js +25 -28
- package/lib/k2hr3template.js +54 -52
- package/lib/k2hr3tokens.js +4 -4
- package/lib/k8soidc.js +3 -3
- package/lib/openstackapiv2.js +51 -52
- package/lib/openstackapiv3.js +86 -87
- package/lib/openstackep.js +46 -46
- package/package.json +8 -8
- package/routes/acr.js +66 -110
- package/routes/debugVerify.js +12 -14
- package/routes/extdata.js +24 -40
- package/routes/list.js +24 -36
- package/routes/policy.js +72 -120
- package/routes/resource.js +110 -165
- package/routes/role.js +177 -295
- package/routes/service.js +54 -90
- package/routes/userTokens.js +1 -1
- package/routes/userdata.js +12 -20
- package/routes/version.js +39 -23
- package/tests/auto_control_subprocess.sh +9 -9
- package/tests/auto_init_config_json.sh +3 -3
- package/tests/auto_resource.js +417 -478
- package/tests/auto_role.js +55 -71
- package/tests/auto_template.sh +4 -4
- package/tests/auto_version.js +39 -23
- package/tests/k2hdkc_test_load.sh +9 -9
- package/tests/k2hr3template_test.sh +12 -12
- package/tests/k2hr3template_test_vars.js +60 -62
- package/tests/manual_acr_delete.js +11 -12
- package/tests/manual_acr_get.js +9 -10
- package/tests/manual_acr_postput.js +12 -13
- package/tests/manual_extdata_get.js +5 -6
- package/tests/manual_list_gethead.js +12 -13
- package/tests/manual_policy_delete.js +12 -13
- package/tests/manual_policy_gethead.js +27 -27
- package/tests/manual_policy_postput.js +21 -23
- package/tests/manual_resource_delete.js +11 -15
- package/tests/manual_resource_gethead.js +11 -14
- package/tests/manual_resource_postput.js +18 -21
- package/tests/manual_role_delete.js +22 -28
- package/tests/manual_role_gethead.js +53 -53
- package/tests/manual_role_postput.js +28 -31
- package/tests/manual_service_delete.js +11 -13
- package/tests/manual_service_gethead.js +13 -15
- package/tests/manual_service_postput.js +10 -11
- package/tests/manual_test.sh +10 -10
- package/tests/manual_userdata_get.js +14 -15
- package/tests/manual_usertoken_gethead.js +12 -14
- package/tests/manual_usertoken_postput.js +23 -26
- package/tests/manual_version_get.js +12 -13
- package/tests/run_local_test_k2hdkc.sh +4 -4
- package/tests/test.sh +12 -12
package/lib/openstackapiv3.js
CHANGED
|
@@ -115,34 +115,34 @@ function rawGetUserUnscopedTokenV3(uname, passwd, callback)
|
|
|
115
115
|
//r3logger.dlog(keystone_ep);
|
|
116
116
|
|
|
117
117
|
// build parameters for request
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
118
|
+
var body = {
|
|
119
|
+
'auth': {
|
|
120
|
+
'identity': {
|
|
121
|
+
'password': {
|
|
122
|
+
'user': {
|
|
123
|
+
'domain': {
|
|
124
|
+
'id': 'default'
|
|
125
|
+
},
|
|
126
|
+
'password': _passwd,
|
|
127
|
+
'name': _uname
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
'methods': ['password']
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
134
|
var strbody = JSON.stringify(body);
|
|
135
135
|
var headers = {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
var options = {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
136
|
+
'Content-Type': 'application/json',
|
|
137
|
+
'Content-Length': strbody.length
|
|
138
|
+
};
|
|
139
|
+
var options = {
|
|
140
|
+
'host': keystone_ep.hostname,
|
|
141
|
+
'port': keystone_ep.port,
|
|
142
|
+
'path': keystone_ep.pathname + '/v3/auth/tokens',
|
|
143
|
+
'method': 'POST',
|
|
144
|
+
'headers': headers
|
|
145
|
+
};
|
|
146
146
|
|
|
147
147
|
var httpobj;
|
|
148
148
|
if(apiutil.compareCaseString('https:', keystone_ep.protocol)){
|
|
@@ -314,28 +314,28 @@ function rawGetUserUnscopedTokenByOstokenV3(ostoken, callback)
|
|
|
314
314
|
//r3logger.dlog(keystone_ep);
|
|
315
315
|
|
|
316
316
|
// build parameters for request
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
317
|
+
var body = {
|
|
318
|
+
'auth': {
|
|
319
|
+
'identity': {
|
|
320
|
+
'token': {
|
|
321
|
+
'id': _ostoken,
|
|
322
|
+
},
|
|
323
|
+
'methods': ['token']
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
};
|
|
327
327
|
var strbody = JSON.stringify(body);
|
|
328
328
|
var headers = {
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
var options = {
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
329
|
+
'Content-Type': 'application/json',
|
|
330
|
+
'Content-Length': strbody.length
|
|
331
|
+
};
|
|
332
|
+
var options = {
|
|
333
|
+
'host': keystone_ep.hostname,
|
|
334
|
+
'port': keystone_ep.port,
|
|
335
|
+
'path': keystone_ep.pathname + '/v3/auth/tokens',
|
|
336
|
+
'method': 'POST',
|
|
337
|
+
'headers': headers
|
|
338
|
+
};
|
|
339
339
|
|
|
340
340
|
var httpobj;
|
|
341
341
|
if(apiutil.compareCaseString('https:', keystone_ep.protocol)){
|
|
@@ -558,35 +558,35 @@ function rawGetUserScopedTokenV3(unscopedtoken, tenantid, callback)
|
|
|
558
558
|
//r3logger.dlog(keystone_ep);
|
|
559
559
|
|
|
560
560
|
// build parameters for request
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
561
|
+
var body = {
|
|
562
|
+
'auth': {
|
|
563
|
+
'identity': {
|
|
564
|
+
'methods': [
|
|
565
|
+
'token'
|
|
566
|
+
],
|
|
567
|
+
'token': {
|
|
568
|
+
'id': _unscopedtoken
|
|
569
|
+
}
|
|
570
|
+
},
|
|
571
|
+
'scope': {
|
|
572
|
+
'project': {
|
|
573
|
+
'id': _tenantid
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
};
|
|
578
578
|
var strbody = JSON.stringify(body);
|
|
579
579
|
var headers = {
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
var options = {
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
580
|
+
'Content-Type': 'application/json',
|
|
581
|
+
'Content-Length': strbody.length
|
|
582
|
+
};
|
|
583
|
+
var options = {
|
|
584
|
+
'host': keystone_ep.hostname,
|
|
585
|
+
'port': keystone_ep.port,
|
|
586
|
+
'path': keystone_ep.pathname + '/v3/auth/tokens',
|
|
587
|
+
'method': 'POST',
|
|
588
|
+
'headers': headers
|
|
589
|
+
};
|
|
590
590
|
|
|
591
591
|
var httpobj;
|
|
592
592
|
if(apiutil.compareCaseString('https:', keystone_ep.protocol)){
|
|
@@ -871,19 +871,18 @@ function rawGetUserTenantListV3(unscopedtoken, userid, callback)
|
|
|
871
871
|
//r3logger.dlog(keystone_ep);
|
|
872
872
|
|
|
873
873
|
// build parameters for request
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
/* eslint-enable indent, no-mixed-spaces-and-tabs */
|
|
874
|
+
var headers = {
|
|
875
|
+
'Content-Type': 'application/json',
|
|
876
|
+
'X-Auth-Token': _unscopedtoken,
|
|
877
|
+
'Content-Length': 0
|
|
878
|
+
};
|
|
879
|
+
var options = {
|
|
880
|
+
'host': keystone_ep.hostname,
|
|
881
|
+
'port': keystone_ep.port,
|
|
882
|
+
'path': keystone_ep.pathname + '/v3/users/' + _userid + '/projects',
|
|
883
|
+
'method': 'GET',
|
|
884
|
+
'headers': headers
|
|
885
|
+
};
|
|
887
886
|
|
|
888
887
|
var httpobj;
|
|
889
888
|
if(apiutil.compareCaseString('https:', keystone_ep.protocol)){
|
|
@@ -1010,7 +1009,7 @@ exports.verifyUserTokenPublisher = function(token_seed)
|
|
|
1010
1009
|
//
|
|
1011
1010
|
// tenant is not used.
|
|
1012
1011
|
//
|
|
1013
|
-
exports.verifyUserToken = function(user, tenant, token, token_seed)
|
|
1012
|
+
exports.verifyUserToken = function(user, tenant, token, token_seed)
|
|
1014
1013
|
{
|
|
1015
1014
|
return rawVerifyUserTokenV3(user, token, token_seed);
|
|
1016
1015
|
};
|
package/lib/openstackep.js
CHANGED
|
@@ -178,56 +178,56 @@ function rawTestKeystoneEndpoint(epallmap, region, endpoint, is_v3, timeout, las
|
|
|
178
178
|
var headers;
|
|
179
179
|
var options;
|
|
180
180
|
if(!_is_v3){
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
181
|
+
body = {
|
|
182
|
+
'auth': {
|
|
183
|
+
'tenantName': '', // unscoped token for test
|
|
184
|
+
'passwordCredentials': {
|
|
185
|
+
'username': '', // user name is empty for testing
|
|
186
|
+
'password': '' // unauthorized passwd
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
190
|
strbody = JSON.stringify(body);
|
|
191
191
|
headers = {
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
options = {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
192
|
+
'Content-Type': 'application/json',
|
|
193
|
+
'Content-Length': strbody.length
|
|
194
|
+
};
|
|
195
|
+
options = {
|
|
196
|
+
'host': ep.hostname,
|
|
197
|
+
'port': ep.port,
|
|
198
|
+
'path': '/v2.0/tokens',
|
|
199
|
+
'method': 'POST',
|
|
200
|
+
'headers': headers
|
|
201
|
+
};
|
|
202
202
|
}else{
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
}
|
|
214
|
-
},
|
|
215
|
-
'methods': ['password']
|
|
216
|
-
}
|
|
203
|
+
body = {
|
|
204
|
+
'auth': {
|
|
205
|
+
'identity': {
|
|
206
|
+
'password': {
|
|
207
|
+
'user': {
|
|
208
|
+
'domain': {
|
|
209
|
+
'id': 'default'
|
|
210
|
+
},
|
|
211
|
+
'name': '', // user name is empty for testing
|
|
212
|
+
'password': '' // unauthorized passwd
|
|
217
213
|
}
|
|
218
|
-
}
|
|
214
|
+
},
|
|
215
|
+
'methods': ['password']
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
};
|
|
219
219
|
strbody = JSON.stringify(body);
|
|
220
220
|
headers = {
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
options = {
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
221
|
+
'Content-Type': 'application/json',
|
|
222
|
+
'Content-Length': strbody.length
|
|
223
|
+
};
|
|
224
|
+
options = {
|
|
225
|
+
'host': ep.hostname,
|
|
226
|
+
'port': ep.port,
|
|
227
|
+
'path': '/v3/auth/tokens',
|
|
228
|
+
'method': 'POST',
|
|
229
|
+
'headers': headers
|
|
230
|
+
};
|
|
231
231
|
}
|
|
232
232
|
|
|
233
233
|
var httpobj;
|
|
@@ -242,7 +242,7 @@ function rawTestKeystoneEndpoint(epallmap, region, endpoint, is_v3, timeout, las
|
|
|
242
242
|
httpobj = http;
|
|
243
243
|
}
|
|
244
244
|
|
|
245
|
-
var req = httpobj.request(options, function(res)
|
|
245
|
+
var req = httpobj.request(options, function(res)
|
|
246
246
|
{
|
|
247
247
|
var body = ''; // eslint-disable-line no-unused-vars
|
|
248
248
|
var status = res.statusCode;
|
|
@@ -254,7 +254,7 @@ function rawTestKeystoneEndpoint(epallmap, region, endpoint, is_v3, timeout, las
|
|
|
254
254
|
res.on('data', function(chunk)
|
|
255
255
|
{
|
|
256
256
|
//r3logger.dlog('response chunk: ' + chunk);
|
|
257
|
-
body += chunk;
|
|
257
|
+
body += chunk;
|
|
258
258
|
});
|
|
259
259
|
|
|
260
260
|
res.on('end', function(res) // eslint-disable-line no-unused-vars
|
package/package.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "k2hr3-api",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.40",
|
|
4
4
|
"dependencies": {
|
|
5
|
-
"@kubernetes/client-node": "^0.
|
|
5
|
+
"@kubernetes/client-node": "^1.0.0",
|
|
6
6
|
"body-parser": "^1.20.3",
|
|
7
7
|
"config": "^3.3.12",
|
|
8
8
|
"cookie-parser": "~1.4.7",
|
|
9
9
|
"dateformat": "^4.6.3",
|
|
10
|
-
"debug": "~4.
|
|
10
|
+
"debug": "~4.4.0",
|
|
11
11
|
"express": "^4.21.2",
|
|
12
12
|
"jose": "^5.9.6",
|
|
13
|
-
"k2hdkc": "^1.0.
|
|
13
|
+
"k2hdkc": "^1.0.13",
|
|
14
14
|
"morgan": "~1.10.0",
|
|
15
|
-
"rotating-file-stream": "^3.2.
|
|
15
|
+
"rotating-file-stream": "^3.2.6"
|
|
16
16
|
},
|
|
17
17
|
"bin": {
|
|
18
18
|
"k2hr3-api": "./bin/www",
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"chai": "^4.5.0",
|
|
32
32
|
"chai-http": "^4.4.0",
|
|
33
|
-
"eslint": "^
|
|
34
|
-
"mocha": "^11.0
|
|
33
|
+
"eslint": "^9.20.1",
|
|
34
|
+
"mocha": "^11.1.0",
|
|
35
35
|
"nyc": "^17.1.0"
|
|
36
36
|
},
|
|
37
37
|
"scripts": {
|
|
@@ -162,7 +162,7 @@
|
|
|
162
162
|
"Takeshi Nakatani <ggtakec@gmail.com> (https://github.com/ggtakec)"
|
|
163
163
|
],
|
|
164
164
|
"contributors": [
|
|
165
|
-
"Hirotaka Wakabayashi <hiwakaba@
|
|
165
|
+
"Hirotaka Wakabayashi <hiwakaba@lycorp.co.jp> (https://github.com/hiwakaba)"
|
|
166
166
|
],
|
|
167
167
|
"license": "MIT"
|
|
168
168
|
}
|