@steedos/service-package-registry 2.6.1-beta.7 → 2.6.2-beta.3

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.
Files changed (27) hide show
  1. package/main/default/client/project_nodes.client.js +2 -2
  2. package/main/default/manager/loader.js +136 -40
  3. package/main/default/manager/packages.js +29 -6
  4. package/main/default/manager/registry.js +28 -2
  5. package/main/default/objectTranslations/steedos_packages.en/steedos_packages.en.objectTranslation.yml +4 -0
  6. package/main/default/objects/steedos_packages/fields/dependencies.field.yml +4 -0
  7. package/main/default/objects/steedos_packages/fields/description.field.yml +1 -1
  8. package/main/default/objects/steedos_packages/fields/homepage.field.yml +4 -0
  9. package/main/default/objects/steedos_packages/fields/icon.field.yml +3 -0
  10. package/main/default/objects/steedos_packages/fields/instance_id.field.yml +1 -0
  11. package/main/default/objects/steedos_packages/fields/metadata.$.type.field.yml +1 -1
  12. package/main/default/objects/steedos_packages/fields/metadata.field.yml +2 -1
  13. package/main/default/objects/steedos_packages/fields/node_id.field.yml +1 -0
  14. package/main/default/objects/steedos_packages/fields/readme.field.yml +4 -0
  15. package/main/default/objects/steedos_packages/fields/service_name.field.yml +1 -0
  16. package/main/default/objects/steedos_packages/fields/static.field.yml +4 -0
  17. package/main/default/objects/steedos_packages/listviews/all.listview.yml +6 -5
  18. package/main/default/objects/steedos_packages/listviews/custom.listview.yml +8 -0
  19. package/main/default/objects/steedos_packages/listviews/system.listview.yml +8 -0
  20. package/main/default/pages/steedos_package_detail.page.amis.json +144 -0
  21. package/main/default/pages/steedos_package_detail.page.yml +12 -0
  22. package/main/default/pages/steedos_packages_list.page.amis.json +146 -0
  23. package/main/default/pages/steedos_packages_list.page.yml +12 -0
  24. package/package.json +7 -7
  25. package/project.package.service.js +183 -220
  26. package/main/default/routes/nodes.router.js +0 -226
  27. package/main/default/routes/registry.router.js +0 -21
@@ -16,7 +16,6 @@ const { MoleculerError } = require("moleculer").Errors;
16
16
  const validator = require('validator');
17
17
  const npa = require("npm-package-arg");
18
18
  const login = require('./main/default/manager/login');
19
- // const objectql = require('@steedos/objectql');
20
19
 
21
20
  const HEADER_AUTH = 'Authorization';
22
21
  const AUTH_TYPE = 'Bearer';
@@ -26,7 +25,7 @@ const AUTH_TYPE = 'Bearer';
26
25
  * 软件包服务启动后也需要抛出事件。
27
26
  */
28
27
  module.exports = {
29
- name: '~packages-project-server',
28
+ name: '@steedos/service-project',
30
29
  namespace: "steedos",
31
30
  /**
32
31
  * Settings
@@ -37,11 +36,6 @@ module.exports = {
37
36
  name: this.name,
38
37
  isPackage: false
39
38
  },
40
- STEEDOS_CLOUD_URL: process.env.STEEDOS_CLOUD_URL ? process.env.STEEDOS_CLOUD_URL : 'https://console.steedos.cn',
41
- STEEDOS_CLOUD_SPACE_ID: process.env.STEEDOS_CLOUD_SPACE_ID,
42
- STEEDOS_CLOUD_API_KEY: process.env.STEEDOS_CLOUD_API_KEY,
43
- STEEDOS_REGISTRY_URL: process.env.STEEDOS_REGISTRY_URL ? process.env.STEEDOS_REGISTRY_URL : 'https://registry.steedos.cn/',
44
- STEEDOS_CLOUD_SYNC_PACKAGES: validator.toBoolean(process.env.STEEDOS_CLOUD_SYNC_PACKAGES || 'false', true),
45
39
  STEEDOS_INITIAL_PACKAGES: process.env.STEEDOS_INITIAL_PACKAGES
46
40
  },
47
41
 
@@ -98,11 +92,15 @@ module.exports = {
98
92
  async handler(ctx) {
99
93
  const { module } = ctx.params
100
94
  const packages = loader.loadPackagesConfig();
101
- const packageConfig = _.find(packages, (_p, pname) => {
95
+ let packageConfig = _.find(packages, (_p, pname) => {
96
+ _p.name = pname;
102
97
  return pname === module;
103
98
  })
104
99
  if (packageConfig) {
105
100
  if (packageConfig.enable) {
101
+ if(packageConfig.static){
102
+ packageConfig = Object.assign({}, packageConfig, this.getStaticPackageInfo(packageConfig, packageConfig.name))
103
+ }
106
104
  if (packageConfig.local) {
107
105
  let packagePath = packageConfig.path;
108
106
  if(!path.isAbsolute(packagePath)){
@@ -110,8 +108,10 @@ module.exports = {
110
108
  }
111
109
  await loader.loadPackage(module, packagePath);
112
110
  const metadata = await loader.getPackageMetadata(util.getPackageRelativePath(process.cwd(), packageConfig.path));
111
+ const packageYmlData = loader.getPackageYmlData(packagePath);
113
112
  await ctx.broker.call(`@steedos/service-packages.install`, {
114
113
  serviceInfo: Object.assign({}, Object.assign({}, packageConfig, { name: module }), {
114
+ packageYmlData: packageYmlData,
115
115
  nodeID: ctx.broker.nodeID,
116
116
  instanceID: ctx.broker.instanceID,
117
117
  metadata: metadata
@@ -133,11 +133,16 @@ module.exports = {
133
133
  disablePackage:{
134
134
  async handler(ctx) {
135
135
  const { module } = ctx.params
136
- 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
+ }
137
140
  if(packageConfig.path){
138
141
  const metadata = await loader.getPackageMetadata(util.getPackageRelativePath(process.cwd(), packageConfig.path));
142
+ const packageYmlData = loader.getPackageYmlData(packageConfig.path);
139
143
  await ctx.broker.call(`@steedos/service-packages.install`, {
140
144
  serviceInfo: Object.assign({}, packageConfig, {
145
+ packageYmlData,
141
146
  nodeID: ctx.broker.nodeID,
142
147
  instanceID: ctx.broker.instanceID,
143
148
  metadata: metadata
@@ -150,10 +155,27 @@ module.exports = {
150
155
  enablePackage:{
151
156
  async handler(ctx) {
152
157
  const { module } = ctx.params
153
- const packageConfig = await loader.enablePackage(module);
158
+ let packageConfig = await loader.getPackageConfig(module);
159
+
160
+ if(packageConfig.static){
161
+ packageConfig = Object.assign({}, packageConfig, this.getStaticPackageInfo(packageConfig, packageConfig.name))
162
+ }
163
+
164
+ const packageYmlData = loader.getPackageYmlData(packageConfig.path);
165
+
166
+ if(packageYmlData.dependencies){
167
+ await packages.checkDependencies(path.resolve(packageConfig.path), packageYmlData.dependencies || [])
168
+ }
169
+ packageConfig = await loader.enablePackage(module);
170
+
171
+ if(packageConfig.static){
172
+ packageConfig = Object.assign({}, packageConfig, this.getStaticPackageInfo(packageConfig, packageConfig.name))
173
+ }
174
+
154
175
  const metadata = await loader.getPackageMetadata(util.getPackageRelativePath(process.cwd(), packageConfig.path));
155
176
  await ctx.broker.call(`@steedos/service-packages.install`, {
156
177
  serviceInfo: Object.assign({}, packageConfig, {
178
+ packageYmlData,
157
179
  nodeID: ctx.broker.nodeID,
158
180
  instanceID: ctx.broker.instanceID,
159
181
  metadata: metadata
@@ -162,68 +184,6 @@ module.exports = {
162
184
  return {}
163
185
  }
164
186
  },
165
- getCloudSaasPurchasedPackages:{
166
- async handler(ctx) {
167
- try {
168
-
169
- const user = ctx.meta.user;
170
- if(!user.is_space_admin){
171
- throw new Error('not permission!');
172
- }
173
- return await this.getCloudSaasPurchasedPackages();
174
- } catch (error) {
175
- throw new MoleculerError(error.message, 500, "ERR_SOMETHING");
176
- }
177
- }
178
- },
179
- installPurchasedPackages: {
180
- async handler(ctx){
181
- const installErrors = {};
182
- const installPackages = [];
183
- try {
184
- const user = ctx.meta.user;
185
- if(!user.is_space_admin){
186
- throw new Error('not permission!');
187
- }
188
- try {
189
- await this.loginSteedosRegistry();
190
- console.info(`login steedos registry success`);
191
- } catch (error) {
192
- // console.error(`login steedos registry fail: `, error.message);
193
- }
194
- const settings = this.settings;
195
- const syncCloudPackages = settings.STEEDOS_CLOUD_SYNC_PACKAGES;
196
- let result = null;
197
- if(syncCloudPackages){
198
- result = await this.getCloudSaasPurchasedPackages();
199
- }
200
- if(result){
201
- for (const _package of result.packages) {
202
- try {
203
- const { name, version, label, description } = _package
204
- let enable = true; //安装已购买的软件包时先默认启用
205
- //TODO 处理 registry_url
206
- // 安装最新版
207
- const packageInfo = await this.installPackage(name, null, label, description, enable, ctx.broker);
208
- installPackages.push(packageInfo)
209
- } catch (error) {
210
- if(error.stderr){
211
- installErrors[_package.name] = error.stderr
212
- }else{
213
- installErrors[_package.name] = error.message
214
- }
215
- }
216
- }
217
- }
218
- return {
219
- installPackages: installPackages,
220
- installErrors: installErrors
221
- }
222
- } catch (error) {
223
- throw new MoleculerError(error.message, 500, "ERR_SOMETHING");
224
- }
225
- }
226
- },
227
187
  getPackageVersions: {
228
188
  async handler(ctx) {
229
189
  const { module } = ctx.params
@@ -243,16 +203,11 @@ module.exports = {
243
203
  if(!user.is_space_admin){
244
204
  throw new Error('not permission!');
245
205
  }
246
- try {
247
- await this.loginSteedosRegistry();
248
- console.info(`login steedos registry success`);
249
- } catch (error) {
250
- // console.error(`login steedos registry fail: `, error.message);
251
- }
252
- let { module, version, url, auth, registry_url } = ctx.params
206
+ let { module, version, url, auth, registry_url, fromClient = false } = ctx.params
253
207
  const enable = true;
254
- return await this.installPackageFromUrl(module, version, url, auth, enable, registry_url, ctx.broker)
208
+ return await this.installPackageFromUrl(module, version, url, auth, enable, registry_url, ctx.broker, {fromClient})
255
209
  } catch (error) {
210
+ this.broker.logger.error(`installPackageFromUrl: `, error);
256
211
  let errorInfo = error.message || '';
257
212
  if (error.stderr) {
258
213
  const errors = error.stderr.split('\n');
@@ -276,6 +231,28 @@ module.exports = {
276
231
  async handler(ctx) {
277
232
  return await this.initialPackages();
278
233
  }
234
+ },
235
+ addPackages: {
236
+ async handler(ctx) {
237
+ return await this.addPackages(ctx);
238
+ }
239
+ },
240
+ getNpmrc: {
241
+ async handler(ctx){
242
+ return await loader.getNpmrc()
243
+ }
244
+ },
245
+ setNpmrc: {
246
+ async handler(ctx){
247
+ const { npmrc } = ctx.params;
248
+ return await loader.setNpmrc(npmrc)
249
+ }
250
+ },
251
+ yarnAddPackage: {
252
+ async handler(ctx) {
253
+ const { yarnPackage } = ctx.params;
254
+ return await this.yarnAddPackage(yarnPackage);
255
+ }
279
256
  }
280
257
  },
281
258
 
@@ -293,47 +270,6 @@ module.exports = {
293
270
  installPackage: {
294
271
  async handler(module, version, label, description, enable, broker) {
295
272
  return await loader.installPackage(broker, {module, version, label, description, enable})
296
- }
297
- },
298
- getCloudSaasPurchasedPackages:{
299
- async handler() {
300
- const settings = this.settings;
301
- const apiKey = settings.STEEDOS_CLOUD_API_KEY || process.env.STEEDOS_CLOUD_API_KEY
302
- const spaceId = settings.STEEDOS_CLOUD_SPACE_ID || process.env.STEEDOS_CLOUD_SPACE_ID
303
- const url = settings.STEEDOS_CLOUD_URL
304
-
305
- if(!apiKey || !spaceId || !url){
306
- throw new Error(`请配置STEEDOS_CLOUD参数`);
307
- }
308
- const headers = Object.assign({}, {'Content-Type': 'application/json'}, { [HEADER_AUTH]: `${AUTH_TYPE} apikey,${apiKey}`});
309
- const response = await fetch(`${url}/api/shop/product_subscriptions/steedos-packages`, {
310
- method: 'GET', headers: headers
311
- });
312
-
313
- const result = await response.json();
314
-
315
- if(result.status === 'error'){
316
- throw new Error(`${url}: ${result.message}`)
317
- }
318
-
319
- const packages = [];
320
-
321
- _.each(result.data, (item)=>{
322
- if(item.product){
323
- let isExist = _.find(packages, (_package)=>{
324
- return _package.name === item.product.sku
325
- })
326
- if(!isExist){
327
- packages.push({
328
- name: item.product.sku,
329
- version: null, //始终安装latest最新版
330
- label: item.product.name,
331
- description: item.product.description || ''
332
- })
333
- }
334
- }
335
- })
336
- return { packages : packages}
337
273
  }
338
274
  },
339
275
  getPackageVersions: {
@@ -358,8 +294,10 @@ module.exports = {
358
294
  }
359
295
  const newConfig = loader.appendToPackagesConfig(module, packageConfig);
360
296
  const metadata = await loader.getPackageMetadata(util.getPackageRelativePath(process.cwd(), packagePath));
297
+ const packageYmlData = loader.getPackageYmlData(packagePath);
361
298
  await this.broker.call(`@steedos/service-packages.install`, {
362
299
  serviceInfo: Object.assign({}, newConfig, {
300
+ packageYmlData,
363
301
  name: module,
364
302
  enable: enable,
365
303
  nodeID: this.broker.nodeID,
@@ -371,7 +309,7 @@ module.exports = {
371
309
  }
372
310
  },
373
311
  installPackageFromUrl: {
374
- async handler(module, version, url, auth, enable, registry_url, broker) {
312
+ async handler(module, version, url, auth, enable, registry_url, broker, {fromClient}) {
375
313
  if(!module || !_.isString(module) || !module.trim()){
376
314
  throw new Error(`无效的软件包名称`);
377
315
  } else {
@@ -392,32 +330,13 @@ module.exports = {
392
330
  }
393
331
  }
394
332
 
395
- const settings = this.settings;
396
- if (url && url.startsWith(settings.STEEDOS_CLOUD_URL + '/api/pkg/download')) {
397
- const apiKey = settings.STEEDOS_CLOUD_API_KEY || process.env.STEEDOS_CLOUD_API_KEY
398
- const spaceId = settings.STEEDOS_CLOUD_SPACE_ID || process.env.STEEDOS_CLOUD_SPACE_ID
399
- const cloudUrl = settings.STEEDOS_CLOUD_URL
400
-
401
- if (!apiKey || !spaceId || !cloudUrl) {
402
- throw new Error(`请配置STEEDOS_CLOUD参数`);
403
- }
404
- const headers = Object.assign({}, { 'Content-Type': 'application/json' }, { [HEADER_AUTH]: `${AUTH_TYPE} apikey,${apiKey}` });
405
- const response = await fetch(url, {
406
- method: 'POST', headers: headers, body: JSON.stringify({ _authToken: auth })
407
- });
408
-
409
- const result = await response.json();
410
-
411
- if (result.error) {
412
- throw new Error(`安装失败,软件包URL或认证信息错误`)
413
- }
414
- url = `${url}/${result.token}`
415
- console.log(`url`, url);
416
- }
417
333
  const packagePath = await registry.installModule(module, version, url, registry_url);
418
334
  const packageInfo = loader.getPackageInfo(null, packagePath);
419
335
  const packageName = packageInfo.name;
420
336
  if(enable){
337
+ if(fromClient){
338
+ await packages.checkDependencies(packagePath)
339
+ }
421
340
  await loader.loadPackage(packageName, packagePath);
422
341
  }else{
423
342
  enable = false;
@@ -433,9 +352,17 @@ module.exports = {
433
352
  path: util.getPackageRelativePath(process.cwd(), packagePath)
434
353
  }
435
354
  loader.appendToPackagesConfig(packageName, packageConfig);
436
- const metadata = await loader.getPackageMetadata(util.getPackageRelativePath(process.cwd(), packagePath));
355
+ let metadata = {}
356
+ try {
357
+ // 软件包元数据扫描失败,并不影响软件包的启动. 在控制台输出异常信息即可.
358
+ metadata = await loader.getPackageMetadata(util.getPackageRelativePath(process.cwd(), packagePath));
359
+ } catch (error) {
360
+ console.error(error)
361
+ }
362
+ const packageYmlData = loader.getPackageYmlData(packagePath);
437
363
  await broker.call(`@steedos/service-packages.install`, {
438
364
  serviceInfo: Object.assign({}, packageConfig, {
365
+ packageYmlData,
439
366
  name: packageName,
440
367
  enable: enable,
441
368
  nodeID: broker.nodeID,
@@ -463,40 +390,6 @@ module.exports = {
463
390
  return result.data;
464
391
  }
465
392
  },
466
- loginSteedosRegistry: {
467
- async handler() {
468
- const settings = this.settings;
469
- // 配置主控地址
470
- const consoleUrl = settings.STEEDOS_CLOUD_URL;
471
- if (!consoleUrl) {
472
- throw new Error('请配置主控地址');
473
- }
474
-
475
- // 初始化工作区数据
476
- // 获取环境变量中工作区信息
477
- const spaceId = settings.STEEDOS_CLOUD_SPACE_ID || process.env.STEEDOS_CLOUD_SPACE_ID;
478
- const apiKey = settings.STEEDOS_CLOUD_API_KEY || process.env.STEEDOS_CLOUD_API_KEY;
479
-
480
- if (!spaceId || !apiKey) {
481
- throw new Error('请配置环境变量STEEDOS_CLOUD_SPACE_ID和STEEDOS_CLOUD_API_KEY。');
482
- }
483
-
484
- const registryUrl = settings.STEEDOS_REGISTRY_URL
485
-
486
- // 调用接口获取初始化信息
487
- const { info, scopes } = await this.getSafeScopes(spaceId, apiKey, consoleUrl);
488
- const { adminPhone } = info;
489
- if (!adminPhone) {
490
- throw new Error('缺少工作区信息 工作区名称、管理员姓名、管理员手机号,请检查');
491
- }
492
- // let scope = '';
493
- // if (scopes && scopes.length > 0) {
494
- // scope = scopes[0];
495
- // }
496
- await login.loginToRegistry(adminPhone, apiKey, `${adminPhone}@steedos.com`, registryUrl, undefined);
497
- login.setYarnrcScopes(scopes, registryUrl);
498
- }
499
- },
500
393
  initialPackages: {
501
394
  async handler(){
502
395
  const settings = this.settings;
@@ -545,6 +438,116 @@ module.exports = {
545
438
  }
546
439
  }
547
440
  }
441
+ },
442
+ addPackages: {
443
+ async handler(ctx){
444
+ const { packages } = ctx.params;
445
+ for(const _package of packages){
446
+ let name = null;
447
+ let options = null;
448
+ if(_.isString(_package)){
449
+ name = _package;
450
+ options = {}
451
+ }else{
452
+ const { name: _name, ..._options} = _package;
453
+ name = _name;
454
+ options = _options;
455
+ }
456
+ if(!_.has(options, 'static')){
457
+ options.static = true
458
+ }
459
+ loader.appendToPackagesConfig(name, options, 'addPackage')
460
+ await this.installPackagesSyncToMetaData(name);
461
+ }
462
+ }
463
+ },
464
+ getStaticPackageInfo: {
465
+ handler(packageInfo, packageName){
466
+ const _path = packageInfo.path || path.dirname(require.resolve(`${packageName}/package.json`));
467
+ const packageJson = require(`${_path}/package.json`);
468
+ return {
469
+ path: _path,
470
+ version: packageJson.version,
471
+ description: packageJson.description,
472
+ homepage: packageJson.homepage
473
+ }
474
+ }
475
+ },
476
+ getPackageInfo: {
477
+ handler(packageInfo, packageName){
478
+ let packagePath = packageInfo.path || path.dirname(require.resolve(`${packageName}/package.json`));
479
+ if(!path.isAbsolute(packagePath)){
480
+ packagePath = path.resolve(process.cwd(), packagePath)
481
+ }
482
+ const packageJson = require(`${packagePath}/package.json`);
483
+ return {
484
+ version: packageJson.version,
485
+ description: packageJson.description,
486
+ homepage: packageJson.homepage
487
+ }
488
+ }
489
+ },
490
+ installPackagesSyncToMetaData:{
491
+ async handler(packageName){
492
+ //注册本地已安装的steedos packages
493
+ const installPackages = loader.loadPackagesConfig();
494
+ for (const name in installPackages) {
495
+ if (Object.hasOwnProperty.call(installPackages, name) && (packageName && packageName === name || !packageName)) {
496
+ let _packageInfo = installPackages[name];
497
+ if(_packageInfo.static){
498
+ _packageInfo = Object.assign({}, _packageInfo, this.getStaticPackageInfo(_packageInfo, name))
499
+ }else{
500
+ _packageInfo = Object.assign({}, _packageInfo, this.getPackageInfo(_packageInfo, name))
501
+ }
502
+ const metadata = await loader.getPackageMetadata(_packageInfo.path);
503
+ const packageYmlData = loader.getPackageYmlData(_packageInfo.path);
504
+ await this.broker.call(`@steedos/service-packages.install`, {
505
+ serviceInfo: {
506
+ packageYmlData,
507
+ name: name,
508
+ nodeID: this.broker.nodeID,
509
+ instanceID: this.broker.instanceID,
510
+ path: _packageInfo.path,
511
+ local: _packageInfo.local,
512
+ enable: false,
513
+ version: _packageInfo.version,
514
+ description: _packageInfo.description,
515
+ metadata: metadata,
516
+ static: _packageInfo.static,
517
+ homepage: _packageInfo.homepage
518
+ }
519
+ })
520
+ }
521
+ }
522
+ }
523
+ },
524
+ yarnAddPackage: {
525
+ async handler(yarnPackage) {
526
+ const packages = await registry.yarnAddPackage(yarnPackage);
527
+ for (const packageInfo of packages) {
528
+ const packagePath = packageInfo.path;
529
+ loader.appendToPackagesConfig(packageInfo.name, {
530
+ version: packageInfo.version,
531
+ path: util.getPackageRelativePath(process.cwd(), packagePath),
532
+ enable: false
533
+ });
534
+ const metadata = await loader.getPackageMetadata(util.getPackageRelativePath(process.cwd(), packagePath));
535
+ const packageYmlData = loader.getPackageYmlData(packagePath);
536
+ await this.broker.call(`@steedos/service-packages.install`, {
537
+ serviceInfo: Object.assign({}, {
538
+ version: packageInfo.version,
539
+ path: packageInfo.path
540
+ }, {
541
+ packageYmlData: packageYmlData,
542
+ name: packageInfo.name,
543
+ enable: false,
544
+ nodeID: broker.nodeID,
545
+ instanceID: broker.instanceID,
546
+ metadata: metadata
547
+ })
548
+ })
549
+ }
550
+ }
548
551
  }
549
552
  },
550
553
 
@@ -559,13 +562,6 @@ module.exports = {
559
562
  * Service started lifecycle event handler
560
563
  */
561
564
  async started() {
562
- // objectql.getSteedosSchema(this.broker);
563
- try {
564
- await this.loginSteedosRegistry();
565
- console.info(`login steedos registry success`);
566
- } catch (error) {
567
- // console.error(`login steedos registry fail: `, error.message);
568
- }
569
565
 
570
566
  const PACKAGE_INSTALL_NODE = process.env.PACKAGE_INSTALL_NODE
571
567
  if(PACKAGE_INSTALL_NODE){
@@ -583,19 +579,6 @@ module.exports = {
583
579
  console.log(`started error`, error)
584
580
  }
585
581
 
586
- // 新版单包项目加载
587
- // try {
588
- // if(fs.existsSync(path.join(process.cwd(), 'package.service.js'))){
589
- // const packagePath = process.cwd();
590
- // if(fs.existsSync(packagePath)){
591
- // const packageInfo = require(path.join(packagePath, 'package.json'));
592
- // loader.appendToPackagesConfig(`${packageInfo.name}`, {version: packageInfo.version, description: packageInfo.description, local: true, path: util.getPackageRelativePath(process.cwd(), packagePath)});
593
- // }
594
- // }
595
- // } catch (error) {
596
- // console.log(`started error`, error)
597
- // }
598
-
599
582
  await metadata.uncompressPackages(process.cwd());
600
583
  const mPackages = metadata.getAllPackages(process.cwd());
601
584
  _.each(mPackages, (packagePath)=>{
@@ -608,27 +591,7 @@ module.exports = {
608
591
  })
609
592
  await loader.loadPackages();
610
593
 
611
- //注册本地已安装的steedos packages
612
- const installPackages = loader.loadPackagesConfig();
613
- for (const name in installPackages) {
614
- if (Object.hasOwnProperty.call(installPackages, name)) {
615
- const _packageInfo = installPackages[name];
616
- const metadata = await loader.getPackageMetadata(_packageInfo.path);
617
- await this.broker.call(`@steedos/service-packages.install`, {
618
- serviceInfo: {
619
- name: name,
620
- nodeID: this.broker.nodeID,
621
- instanceID: this.broker.instanceID,
622
- path: _packageInfo.path,
623
- local: _packageInfo.local,
624
- enable: _packageInfo.enable,
625
- version: _packageInfo.version,
626
- description: _packageInfo.description,
627
- metadata: metadata
628
- }
629
- })
630
- }
631
- }
594
+ await this.installPackagesSyncToMetaData()
632
595
 
633
596
  },
634
597