@steedos/service-package-registry 2.5.15-beta.8 → 2.5.15

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.
@@ -9,11 +9,21 @@ const userDir = path.join(process.cwd(), '.steedos');
9
9
  const packagesFilePath = path.join(userDir, 'steedos-packages.yml');
10
10
  const metadataApi = require('@steedos/metadata-api');
11
11
  const util = require('./util');
12
+ const metaDataCore = require('@steedos/metadata-core');
13
+
14
+ const getPackageYmlData = (packagePath)=>{
15
+ let packageYmlData = {};
16
+ if(fs.existsSync(path.join(packagePath, 'steedos.package.yml'))){
17
+ packageYmlData = metaDataCore.loadFile(path.join(packagePath, 'steedos.package.yml'));
18
+ }
19
+ return packageYmlData;
20
+ }
21
+
12
22
  const loadPackagesConfig = ()=>{
13
23
  return yaml.load(fs.readFileSync(packagesFilePath, 'utf8')) || {};
14
24
  }
15
25
 
16
- const appendToPackagesConfig = (packageName, options)=>{
26
+ const appendToPackagesConfig = (packageName, options, actionName)=>{
17
27
  let packages = loadPackagesConfig();
18
28
  let changeNamePackage = null;
19
29
  if(options.local && !packages[packageName]){
@@ -36,7 +46,9 @@ const appendToPackagesConfig = (packageName, options)=>{
36
46
  }
37
47
  }else{
38
48
  // 对于已经存在的软件包, 不支持使用传入的enable控制软件包状态.
39
- delete options.enable
49
+ if(actionName === 'addPackage'){
50
+ delete options.enable
51
+ }
40
52
  packages[packageName] = Object.assign(packages[packageName], options)
41
53
  }
42
54
  }else{
@@ -331,8 +343,10 @@ const installPackage = async (broker, options)=>{
331
343
  }
332
344
  appendToPackagesConfig(module, packageConfig);
333
345
  const metadata = await getPackageMetadata(util.getPackageRelativePath(process.cwd(), packagePath));
346
+ const packageYmlData = getPackageYmlData(packagePath);
334
347
  await broker.call(`@steedos/service-packages.install`, {
335
348
  serviceInfo: Object.assign({}, packageConfig, {
349
+ packageYmlData: packageYmlData,
336
350
  name: module,
337
351
  enable: enable,
338
352
  nodeID: broker.nodeID,
@@ -385,5 +399,6 @@ module.exports = {
385
399
  removePackage,
386
400
  getPackageInfo,
387
401
  getPackageMetadata,
388
- installPackage
402
+ installPackage,
403
+ getPackageYmlData
389
404
  }
@@ -47,16 +47,17 @@ const getAllPackages = async ()=>{
47
47
  _package.version = package.version
48
48
  }else{
49
49
  packages.push({
50
+ label: package.label || packageName,
51
+ homepage: package.homepage,
52
+ description: package.description,
53
+ ...(package.packageYmlData || {}),
50
54
  _id : packageName.replace("/", '_'),
51
55
  name: packageName,
52
56
  status : package.enable ? 'starting' : 'disable',
53
57
  version : package.version,
54
58
  local: package.local,
55
- label: package.label || packageName,
56
- description: package.description,
57
59
  metadata: package.metadata,
58
- static: package.static,
59
- homepage: package.homepage
60
+ static: package.static
60
61
  })
61
62
  }
62
63
  })
@@ -72,6 +73,10 @@ const getAllPackages = async ()=>{
72
73
  _package.homepage = packageInfo.homepage
73
74
  }else{
74
75
  packages.push({
76
+ label: packageInfo.label || packageName,
77
+ description: packageInfo.description,
78
+ homepage: packageInfo.homepage,
79
+ ...(packageInfo.packageYmlData || {}),
75
80
  _id : packageName.replace("/", '_'),
76
81
  name: packageName,
77
82
  service_name: packageInfo.name,
@@ -79,10 +84,7 @@ const getAllPackages = async ()=>{
79
84
  instance_id: packageInfo.instanceID,
80
85
  status : 'enable',
81
86
  version : packageInfo.version,
82
- label: packageInfo.label || packageName,
83
- description: packageInfo.description,
84
- local: false,
85
- homepage: packageInfo.homepage
87
+ local: false
86
88
  })
87
89
  }
88
90
  })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steedos/service-package-registry",
3
- "version": "2.5.15-beta.8",
3
+ "version": "2.5.15",
4
4
  "description": "",
5
5
  "main": "package.service.js",
6
6
  "scripts": {
@@ -9,11 +9,11 @@
9
9
  "author": "",
10
10
  "license": "ISC",
11
11
  "dependencies": {
12
- "@steedos/auth": "2.5.15-beta.8",
13
- "@steedos/core": "2.5.15-beta.8",
14
- "@steedos/metadata-core": "2.5.15-beta.8",
15
- "@steedos/objectql": "2.5.15-beta.8",
16
- "@steedos/service-package-loader": "2.5.15-beta.8",
12
+ "@steedos/auth": "2.5.15",
13
+ "@steedos/core": "2.5.15",
14
+ "@steedos/metadata-core": "2.5.15",
15
+ "@steedos/objectql": "2.5.15",
16
+ "@steedos/service-package-loader": "2.5.15",
17
17
  "fs-extra": "8.1.0",
18
18
  "i18next": "20.3.2",
19
19
  "json-stringify-safe": "5.0.1",
@@ -31,5 +31,5 @@
31
31
  "publishConfig": {
32
32
  "access": "public"
33
33
  },
34
- "gitHead": "57749646844367a3709c05e13313f50d7d13e43d"
34
+ "gitHead": "dd588460d9a446d76c1d065c342594e9bec1f14d"
35
35
  }
@@ -92,11 +92,15 @@ module.exports = {
92
92
  async handler(ctx) {
93
93
  const { module } = ctx.params
94
94
  const packages = loader.loadPackagesConfig();
95
- const packageConfig = _.find(packages, (_p, pname) => {
95
+ let packageConfig = _.find(packages, (_p, pname) => {
96
+ _p.name = pname;
96
97
  return pname === module;
97
98
  })
98
99
  if (packageConfig) {
99
100
  if (packageConfig.enable) {
101
+ if(packageConfig.static){
102
+ packageConfig = Object.assign({}, packageConfig, this.getStaticPackageInfo(packageConfig, packageConfig.name))
103
+ }
100
104
  if (packageConfig.local) {
101
105
  let packagePath = packageConfig.path;
102
106
  if(!path.isAbsolute(packagePath)){
@@ -104,8 +108,10 @@ module.exports = {
104
108
  }
105
109
  await loader.loadPackage(module, packagePath);
106
110
  const metadata = await loader.getPackageMetadata(util.getPackageRelativePath(process.cwd(), packageConfig.path));
111
+ const packageYmlData = loader.getPackageYmlData(packagePath);
107
112
  await ctx.broker.call(`@steedos/service-packages.install`, {
108
113
  serviceInfo: Object.assign({}, Object.assign({}, packageConfig, { name: module }), {
114
+ packageYmlData: packageYmlData,
109
115
  nodeID: ctx.broker.nodeID,
110
116
  instanceID: ctx.broker.instanceID,
111
117
  metadata: metadata
@@ -127,11 +133,16 @@ module.exports = {
127
133
  disablePackage:{
128
134
  async handler(ctx) {
129
135
  const { module } = ctx.params
130
- const packageConfig = await loader.disablePackage(module);
136
+ let packageConfig = await loader.disablePackage(module);
137
+ if(packageConfig.static){
138
+ packageConfig = Object.assign({}, packageConfig, this.getStaticPackageInfo(packageConfig, packageConfig.name))
139
+ }
131
140
  if(packageConfig.path){
132
141
  const metadata = await loader.getPackageMetadata(util.getPackageRelativePath(process.cwd(), packageConfig.path));
142
+ const packageYmlData = loader.getPackageYmlData(packageConfig.path);
133
143
  await ctx.broker.call(`@steedos/service-packages.install`, {
134
144
  serviceInfo: Object.assign({}, packageConfig, {
145
+ packageYmlData,
135
146
  nodeID: ctx.broker.nodeID,
136
147
  instanceID: ctx.broker.instanceID,
137
148
  metadata: metadata
@@ -150,8 +161,10 @@ module.exports = {
150
161
  }
151
162
  await packages.checkDependencies(path.resolve(packageConfig.path))
152
163
  const metadata = await loader.getPackageMetadata(util.getPackageRelativePath(process.cwd(), packageConfig.path));
164
+ const packageYmlData = loader.getPackageYmlData(packageConfig.path);
153
165
  await ctx.broker.call(`@steedos/service-packages.install`, {
154
166
  serviceInfo: Object.assign({}, packageConfig, {
167
+ packageYmlData,
155
168
  nodeID: ctx.broker.nodeID,
156
169
  instanceID: ctx.broker.instanceID,
157
170
  metadata: metadata
@@ -183,6 +196,7 @@ module.exports = {
183
196
  const enable = true;
184
197
  return await this.installPackageFromUrl(module, version, url, auth, enable, registry_url, ctx.broker, {fromClient})
185
198
  } catch (error) {
199
+ this.broker.logger.error(`installPackageFromUrl: `, error);
186
200
  let errorInfo = error.message || '';
187
201
  if (error.stderr) {
188
202
  const errors = error.stderr.split('\n');
@@ -253,8 +267,10 @@ module.exports = {
253
267
  }
254
268
  const newConfig = loader.appendToPackagesConfig(module, packageConfig);
255
269
  const metadata = await loader.getPackageMetadata(util.getPackageRelativePath(process.cwd(), packagePath));
270
+ const packageYmlData = loader.getPackageYmlData(packagePath);
256
271
  await this.broker.call(`@steedos/service-packages.install`, {
257
272
  serviceInfo: Object.assign({}, newConfig, {
273
+ packageYmlData,
258
274
  name: module,
259
275
  enable: enable,
260
276
  nodeID: this.broker.nodeID,
@@ -316,8 +332,10 @@ module.exports = {
316
332
  } catch (error) {
317
333
  console.error(error)
318
334
  }
335
+ const packageYmlData = loader.getPackageYmlData(packagePath);
319
336
  await broker.call(`@steedos/service-packages.install`, {
320
337
  serviceInfo: Object.assign({}, packageConfig, {
338
+ packageYmlData,
321
339
  name: packageName,
322
340
  enable: enable,
323
341
  nodeID: broker.nodeID,
@@ -411,7 +429,7 @@ module.exports = {
411
429
  if(!_.has(options, 'static')){
412
430
  options.static = true
413
431
  }
414
- loader.appendToPackagesConfig(name, options)
432
+ loader.appendToPackagesConfig(name, options, 'addPackage')
415
433
  await this.installPackagesSyncToMetaData(name);
416
434
  }
417
435
  }
@@ -451,8 +469,10 @@ module.exports = {
451
469
  _packageInfo = Object.assign({}, _packageInfo, this.getPackageInfo(_packageInfo, name))
452
470
  }
453
471
  const metadata = await loader.getPackageMetadata(_packageInfo.path);
472
+ const packageYmlData = loader.getPackageYmlData(_packageInfo.path);
454
473
  await this.broker.call(`@steedos/service-packages.install`, {
455
474
  serviceInfo: {
475
+ packageYmlData,
456
476
  name: name,
457
477
  nodeID: this.broker.nodeID,
458
478
  instanceID: this.broker.instanceID,