@milaboratories/pl-deployments 1.1.13 → 1.1.14

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.
@@ -1 +1 @@
1
- {"version":3,"file":"pl.d.ts","sourceRoot":"","sources":["../../src/ssh/pl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pl.d.ts","sourceRoot":"","sources":["../../src/ssh/pl.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pl_paths.d.ts","sourceRoot":"","sources":["../../src/ssh/pl_paths.ts"],"names":[],"mappings":"AAAA,mEAAmE;AAMnE,eAAO,MAAM,YAAY,+BAA+B,CAAC;AACzD,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AACtD,eAAO,MAAM,qBAAqB,mCAAmC,CAAC;AAEtE,wBAAgB,OAAO,CAAC,UAAU,EAAE,MAAM,UAEzC;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,UAE7C;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAEhE;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAE5D;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAE5D;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAExD;AAED,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAExD;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAEhE;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,UAEhD;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,UAEhD"}
1
+ {"version":3,"file":"pl_paths.d.ts","sourceRoot":"","sources":["../../src/ssh/pl_paths.ts"],"names":[],"mappings":"AAAA,mEAAmE;AAMnE,eAAO,MAAM,YAAY,+BAA+B,CAAC;AACzD,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AACtD,eAAO,MAAM,qBAAqB,mCAAmC,CAAC;AAEtE,wBAAgB,OAAO,CAAC,UAAU,EAAE,MAAM,UAEzC;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,UAE7C;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAEhE;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAE5D;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAExD;AAED,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAExD;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAEhE;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,UAEhD;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,UAEhD"}
package/dist/ssh/ssh.d.ts CHANGED
@@ -120,7 +120,7 @@ export declare class SshClient {
120
120
  * @param remotePath - The path to the remote directory.
121
121
  * @returns A promise that resolves when the directory is created.
122
122
  */
123
- createRemoteDirectory(remotePath: string, mode?: number): Promise<void>;
123
+ ensureRemoteDirCreated(remotePath: string, mode?: number): Promise<void>;
124
124
  /**
125
125
  * Downloads a file from the remote server to a local path via SFTP.
126
126
  * @param remotePath - The remote file path on the server.
@@ -1 +1 @@
1
- {"version":3,"file":"ssh.d.ts","sourceRoot":"","sources":["../../src/ssh/ssh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAiB,WAAW,EAAE,MAAM,MAAM,CAAC;AACtE,OAAO,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,GAAG,MAAM,KAAK,CAAC;AAKtB,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAQ7E,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,UAAU,CAAC;AACtD,MAAM,MAAM,oBAAoB,GAAG,cAAc,EAAE,CAAC;AACpD,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,qBAAa,SAAS;IAMlB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IANzB,OAAO,CAAC,MAAM,CAAC,CAAgB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,gBAAgB,CAAoB;gBAGzB,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,MAAM;IAGjC;;;;OAIG;WACiB,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;IAY9E,mBAAmB;IAInB,eAAe;IAIf,WAAW;IAIlB;;;;OAIG;IACU,OAAO,CAAC,MAAM,EAAE,aAAa;IAK1C;;;;OAIG;IACU,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA0B1D;;;;;OAKG;WACiB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA2B3F;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAKjC;;;;;;OAMG;IACU,WAAW,CAAC,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAA;KAAE,CAAC;IA+FhJ,mBAAmB,IAAI,IAAI;IAclC;;;;MAIE;WACkB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ7E;;;;OAIG;WACiB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAepF;;;;;;OAMG;IACU,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAenE,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAmBpE,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,GAAE,MAAc;IAMpF,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,GAAE,aAA8C,GAAG,OAAO,CAAC,aAAa,CAAC;IAyB7I,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM;IAMrC,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM;IAMhC,YAAY,CAAC,IAAI,EAAE,MAAM;IA8BzB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAapD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAahC,eAAe,CAAC,UAAU,EAAE,MAAM;IAgBlC,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,CAAC;YAoBhG,SAAS;IAWhB,2BAA2B,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,GAAE,MAAc;YAgBnG,iBAAiB;IA8B/B;;;;;OAKG;IACU,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE,MAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAatG;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IA8B/B;;;;;OAKG;IACI,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,GAAE,MAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BrF;;;;;OAKG;IACU,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAalF;;OAEG;IACI,KAAK,IAAI,IAAI;CAIrB;AAED,MAAM,MAAM,aAAa,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"ssh.d.ts","sourceRoot":"","sources":["../../src/ssh/ssh.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@milaboratories/pl-deployments",
3
- "version": "1.1.13",
3
+ "version": "1.1.14",
4
4
  "pl-version": "1.20.1",
5
5
  "description": "MiLaboratories Platforma Backend code service run wrapper",
6
6
  "types": "./dist/index.d.ts",
@@ -39,8 +39,8 @@
39
39
  "utility-types": "^3.11.0",
40
40
  "vite": "^5.4.11",
41
41
  "vitest": "^2.1.8",
42
- "@milaboratories/eslint-config": "^1.0.1",
43
- "@milaboratories/platforma-build-configs": "1.0.2"
42
+ "@milaboratories/platforma-build-configs": "1.0.2",
43
+ "@milaboratories/eslint-config": "^1.0.1"
44
44
  },
45
45
  "dependencies": {
46
46
  "decompress": "^4.2.1",
@@ -65,7 +65,12 @@ describe('SshPl', async () => {
65
65
  const arch = await sshPl.getArch();
66
66
  const remoteHome = await sshPl.getUserHomeDirectory();
67
67
  await sshPl.stop(); // ensure stopped
68
- await sshPl.downloadBinariesAndUploadToTheServer(downloadDestination, remoteHome, arch);
68
+ await sshPl.downloadBinariesAndUploadToTheServer(
69
+ downloadDestination,
70
+ { type: 'Download', version: getDefaultPlVersion() },
71
+ remoteHome,
72
+ arch,
73
+ );
69
74
 
70
75
  const pathSupervisor = `${plpath.supervisorBinDir(remoteHome, arch.arch)}/supervisord`;
71
76
  const pathMinio = `${plpath.minioDir(remoteHome, arch.arch)}/minio`;
@@ -179,6 +184,24 @@ describe('SshPl', async () => {
179
184
  expect(config).contain('bin-ga');
180
185
  });
181
186
 
187
+ it('Start ssh with old platforma, restart it with newer one', async () => {
188
+ await sshPl.platformaInit({
189
+ localWorkdir: downloadDestination,
190
+ license: { type: 'env' },
191
+ plBinary: { type: 'Download', version: '1.18.3' },
192
+ });
193
+ let isAlive = await sshPl?.isAlive();
194
+ expect(isAlive.allAlive).toBe(true);
195
+
196
+ await sshPl.platformaInit({
197
+ localWorkdir: downloadDestination,
198
+ license: { type: 'env' },
199
+ // latest version of pl binary will be get by default
200
+ });
201
+ isAlive = await sshPl?.isAlive();
202
+ expect(isAlive.allAlive).toBe(true);
203
+ });
204
+
182
205
  it('Download pl. We have archive and extracted data', async () => {
183
206
  const arch = await sshPl.getArch();
184
207
 
@@ -44,7 +44,7 @@ describe('SSH Tests', () => {
44
44
  });
45
45
  it('should create all directories if none exist', async () => {
46
46
  const remotePath = '/home/pl-doctor/upload/nested/directory';
47
- await expect(client.createRemoteDirectory(remotePath)).resolves.not.toThrow();
47
+ await expect(client.ensureRemoteDirCreated(remotePath)).resolves.not.toThrow();
48
48
 
49
49
  // Additional check to ensure the directory exists
50
50
  await client.withSftp(async (sftp) => {
@@ -61,14 +61,14 @@ describe('SSH Tests', () => {
61
61
  it('should handle existing directories gracefully', async () => {
62
62
  const remotePath = '/home/pl-doctor/upload/nested';
63
63
 
64
- await expect(client.createRemoteDirectory(remotePath)).resolves.not.toThrow();
65
- await expect(client.createRemoteDirectory(remotePath)).resolves.not.toThrow();
64
+ await expect(client.ensureRemoteDirCreated(remotePath)).resolves.not.toThrow();
65
+ await expect(client.ensureRemoteDirCreated(remotePath)).resolves.not.toThrow();
66
66
  });
67
67
 
68
68
  it('should throw an error if an invalid path is provided', async () => {
69
69
  const remotePath = '/invalid_path/nested';
70
70
 
71
- await expect(client.createRemoteDirectory(remotePath)).rejects.toThrow();
71
+ await expect(client.ensureRemoteDirCreated(remotePath)).rejects.toThrow();
72
72
  });
73
73
 
74
74
  it('Upload directory', async () => {
@@ -133,9 +133,9 @@ describe('SSH Tests', () => {
133
133
 
134
134
  it('Remove directory', async () => {
135
135
  const rootFolder = '/home/pl-doctor/upload';
136
- await client.createRemoteDirectory(`${rootFolder}/upload/nested`);
137
- await client.createRemoteDirectory(`${rootFolder}/2-nested`);
138
- await client.createRemoteDirectory(`${rootFolder}/2-nested/3-sub`);
136
+ await client.ensureRemoteDirCreated(`${rootFolder}/upload/nested`);
137
+ await client.ensureRemoteDirCreated(`${rootFolder}/2-nested`);
138
+ await client.ensureRemoteDirCreated(`${rootFolder}/2-nested/3-sub`);
139
139
  await client.writeFileOnTheServer(`${rootFolder}/2-nested/3-sub/qwerty.txt`, 'HELLO FROM SSH');
140
140
 
141
141
  const text = await client.readFile(`${rootFolder}/2-nested/3-sub/qwerty.txt`);
@@ -31,6 +31,9 @@ export const ConnectionInfo = z.object({
31
31
  // It's false by default because it was added later,
32
32
  // and in some deployments there won't be useGlobalAccess flag in the file.
33
33
  useGlobalAccess: z.boolean().default(false),
34
+
35
+ // We added the field afterwards, the pl backend was this version.
36
+ plVersion: z.string().default('1.18.3'),
34
37
  });
35
38
  /** The content of the file that holds all the info about the connection on the remote server. */
36
39
  export type ConnectionInfo = z.infer<typeof ConnectionInfo>;
@@ -44,12 +47,14 @@ export function newConnectionInfo(
44
47
  plPassword: string,
45
48
  ports: SshPlPorts,
46
49
  useGlobalAccess: boolean,
50
+ plVersion: string,
47
51
  ): ConnectionInfo {
48
52
  return {
49
53
  plUser,
50
54
  plPassword,
51
55
  ports,
52
56
  useGlobalAccess,
57
+ plVersion,
53
58
  };
54
59
  }
55
60
 
package/src/ssh/pl.ts CHANGED
@@ -15,6 +15,7 @@ import type { SupervisorStatus } from './supervisord';
15
15
  import { supervisorStatus, supervisorStop as supervisorCtlShutdown, generateSupervisordConfig, supervisorCtlStart } from './supervisord';
16
16
  import type { ConnectionInfo, SshPlPorts } from './connection_info';
17
17
  import { newConnectionInfo, parseConnectionInfo, stringifyConnectionInfo } from './connection_info';
18
+ import type { PlBinarySourceDownload } from '../common/pl_binary';
18
19
 
19
20
  export class SshPl {
20
21
  private initState: PlatformaInitState = {};
@@ -120,6 +121,7 @@ export class SshPl {
120
121
  ...defaultSshPlConfig,
121
122
  ...options,
122
123
  };
124
+ state.plBinaryOps = ops.plBinary;
123
125
  state.arch = await this.getArch();
124
126
  state.remoteHome = await this.getUserHomeDirectory();
125
127
  state.alive = await this.isAlive();
@@ -129,16 +131,19 @@ export class SshPl {
129
131
  if (!state.userCredentials) {
130
132
  throw new Error(`SshPl.platformaInit: platforma is alive but userCredentials are not found`);
131
133
  }
132
- const needRestart = state.userCredentials.useGlobalAccess != ops.useGlobalAccess;
133
- if (!needRestart)
134
+ const sameGA = state.userCredentials.useGlobalAccess == ops.useGlobalAccess;
135
+ const samePlVersion = state.userCredentials.plVersion == ops.plBinary!.version;
136
+ state.needRestart = !(sameGA && samePlVersion);
137
+ this.logger.info(`SshPl.platformaInit: need restart? ${state.needRestart}`);
138
+
139
+ if (!state.needRestart)
134
140
  return state.userCredentials;
135
141
 
136
- // make sure that we won't be in a broken state.
137
- await this.stopAndClean();
142
+ await this.stop();
138
143
  }
139
144
 
140
145
  const downloadRes = await this.downloadBinariesAndUploadToTheServer(
141
- ops.localWorkdir, state.remoteHome, state.arch,
146
+ ops.localWorkdir, ops.plBinary!, state.remoteHome, state.arch,
142
147
  );
143
148
  state.binPaths = { ...downloadRes, history: undefined };
144
149
  state.downloadedBinaries = downloadRes.history;
@@ -176,7 +181,7 @@ export class SshPl {
176
181
  }
177
182
 
178
183
  for (const dir of config.dirsToCreate) {
179
- await this.sshClient.createRemoteDirectory(dir);
184
+ await this.sshClient.ensureRemoteDirCreated(dir);
180
185
  this.logger.info(`Created directory ${dir}`);
181
186
  }
182
187
 
@@ -200,6 +205,7 @@ export class SshPl {
200
205
  config.plPassword,
201
206
  state.ports,
202
207
  notEmpty(ops.useGlobalAccess),
208
+ ops.plBinary!.version,
203
209
  );
204
210
  await this.sshClient.writeFileOnTheServer(
205
211
  plpath.connectionInfo(state.remoteHome),
@@ -221,6 +227,7 @@ export class SshPl {
221
227
 
222
228
  public async downloadBinariesAndUploadToTheServer(
223
229
  localWorkdir: string,
230
+ plBinary: PlBinarySourceDownload,
224
231
  remoteHome: string,
225
232
  arch: Arch,
226
233
  ) {
@@ -228,7 +235,7 @@ export class SshPl {
228
235
  try {
229
236
  const pl = await this.downloadAndUntar(
230
237
  localWorkdir, remoteHome, arch,
231
- 'pl', `pl-${getDefaultPlVersion()}`,
238
+ 'pl', `pl-${plBinary.version}`,
232
239
  );
233
240
  state.push(pl);
234
241
 
@@ -273,7 +280,7 @@ export class SshPl {
273
280
  ): Promise<DownloadAndUntarState> {
274
281
  const state: DownloadAndUntarState = {};
275
282
  state.binBasePath = plpath.binariesDir(remoteHome);
276
- await this.sshClient.createRemoteDirectory(state.binBasePath);
283
+ await this.sshClient.ensureRemoteDirCreated(state.binBasePath);
277
284
  state.binBasePathCreated = true;
278
285
 
279
286
  let downloadBinaryResult: DownloadBinaryResult | null = null;
@@ -301,7 +308,7 @@ export class SshPl {
301
308
  state.remoteDir = upath.join(state.binBasePath, state.downloadResult.baseName);
302
309
  state.remoteArchivePath = state.remoteDir + '.tgz';
303
310
 
304
- await this.sshClient.createRemoteDirectory(state.remoteDir);
311
+ await this.sshClient.ensureRemoteDirCreated(state.remoteDir);
305
312
  await this.sshClient.uploadFile(state.localArchivePath, state.remoteArchivePath);
306
313
 
307
314
  // TODO: Create a proper archive to avoid xattr warnings
@@ -432,19 +439,25 @@ export type SshPlConfig = {
432
439
  localWorkdir: string;
433
440
  license: PlLicenseMode;
434
441
  useGlobalAccess?: boolean;
442
+ plBinary?: PlBinarySourceDownload;
435
443
  };
436
444
 
437
445
  const defaultSshPlConfig: Pick<
438
446
  SshPlConfig,
439
- 'useGlobalAccess'
447
+ | 'useGlobalAccess'
448
+ | 'plBinary'
440
449
  > = {
441
450
  useGlobalAccess: false,
451
+ plBinary: {
452
+ type: 'Download',
453
+ version: getDefaultPlVersion(),
454
+ },
442
455
  };
443
456
 
444
457
  type BinPaths = {
445
458
  history?: DownloadAndUntarState[];
446
459
  minioRelPath: string;
447
- downloadedPl: any;
460
+ downloadedPl: string;
448
461
  };
449
462
 
450
463
  type DownloadAndUntarState = {
@@ -462,10 +475,12 @@ type DownloadAndUntarState = {
462
475
 
463
476
  type PlatformaInitState = {
464
477
  localWorkdir?: string;
478
+ plBinaryOps?: PlBinarySourceDownload;
465
479
  arch?: Arch;
466
480
  remoteHome?: string;
467
481
  alive?: SupervisorStatus;
468
482
  userCredentials?: ConnectionInfo;
483
+ needRestart?: boolean;
469
484
  downloadedBinaries?: DownloadAndUntarState[];
470
485
  binPaths?: BinPaths;
471
486
  ports?: SshPlPorts;
@@ -24,7 +24,7 @@ export function platformaDir(remoteHome: string, arch: string) {
24
24
  return upath.join(platformaBaseDir(remoteHome, arch), 'binaries');
25
25
  }
26
26
 
27
- export function platformaBin(remoteHome: string, arch: string) {
27
+ export function platformaBin(remoteHome: string, arch: string): string {
28
28
  return upath.join(platformaDir(remoteHome, arch), 'platforma');
29
29
  }
30
30
 
package/src/ssh/ssh.ts CHANGED
@@ -586,7 +586,7 @@ export class SshClient {
586
586
  * @param remotePath - The path to the remote directory.
587
587
  * @returns A promise that resolves when the directory is created.
588
588
  */
589
- public createRemoteDirectory(remotePath: string, mode: number = 0o755): Promise<void> {
589
+ public ensureRemoteDirCreated(remotePath: string, mode: number = 0o755): Promise<void> {
590
590
  return this.withSftp(async (sftp) => {
591
591
  const directories = remotePath.split('/');
592
592
  let currentPath = '';