@milaboratories/pl-deployments 1.1.0 → 1.1.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/dist/ssh/__tests__/common-utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/local/pl.test.ts +1 -1
- package/src/ssh/__tests__/common-utils.ts +8 -8
- package/src/ssh/__tests__/pl-docker.test.ts +1 -1
- package/src/ssh/__tests__/ssh-docker.test.ts +3 -1
- package/src/ssh/Dockerfile +0 -29
- package/src/ssh/test-assets/simple-server.js +0 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common-utils.d.ts","sourceRoot":"","sources":["../../../src/ssh/__tests__/common-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAK3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAS1C,eAAO,MAAM,eAAe,QAAkC,CAAC;AAC/D,eAAO,MAAM,iBAAiB,QAA2C,CAAC;AAC1E,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"common-utils.d.ts","sourceRoot":"","sources":["../../../src/ssh/__tests__/common-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAK3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAS1C,eAAO,MAAM,eAAe,QAAkC,CAAC;AAC/D,eAAO,MAAM,iBAAiB,QAA2C,CAAC;AAC1E,eAAO,MAAM,eAAe,QAAwE,CAAC;AACrG,eAAO,MAAM,SAAS,QAAsF,CAAC;AAE7G,wBAAsB,+BAA+B,kBAqBpD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,UAE9C;AAED,wBAAgB,YAAY,SAM3B;AAED,wBAAgB,cAAc,IAAI,MAAM,CAGvC;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAoB/E;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,oBAAoB;;;EAKtE;AAgBD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,oBAAoB,EAAE,KAAK,GAAE,OAAe,GAAG,aAAa,CAY1G;AAED,wBAAsB,OAAO,CAAC,SAAS,EAAE,oBAAoB,iBAc5D"}
|
package/package.json
CHANGED
package/src/local/pl.test.ts
CHANGED
|
@@ -117,7 +117,7 @@ async function readTestConfig() {
|
|
|
117
117
|
}
|
|
118
118
|
|
|
119
119
|
async function prepareDirForTestConfig() {
|
|
120
|
-
const dir = upath.join(__dirname, '..', '.test');
|
|
120
|
+
const dir = upath.join(__dirname, '..', '..', '.test');
|
|
121
121
|
await fs.rm(dir, { recursive: true, force: true });
|
|
122
122
|
await fs.mkdir(dir);
|
|
123
123
|
|
|
@@ -14,18 +14,18 @@ const privateKeyPath = getPathForFile('private-key.private');
|
|
|
14
14
|
|
|
15
15
|
export const localFileUpload = getPathForFile('test-file.txt');
|
|
16
16
|
export const localFileDownload = getPathForFile('test-file-download.txt');
|
|
17
|
-
export const downloadsFolder = path.resolve(__dirname, '..', 'test-assets', 'downloads');
|
|
18
|
-
export const recUpload = path.resolve(__dirname, '..', 'test-assets', 'downloads', 'rec-upload');
|
|
17
|
+
export const downloadsFolder = path.resolve(__dirname, '..', '..', '..', 'test-assets', 'downloads');
|
|
18
|
+
export const recUpload = path.resolve(__dirname, '..', '..', '..', 'test-assets', 'downloads', 'rec-upload');
|
|
19
19
|
|
|
20
20
|
export async function createTestDirForRecursiveUpload() {
|
|
21
|
-
const pathBase = path.resolve(__dirname, '..', 'test-assets', 'downloads', 'rec-upload', 'sub-1');
|
|
22
|
-
const path2 = path.resolve(__dirname, '..', 'test-assets', 'downloads', 'rec-upload', 'sub-1', 'sub-1-1');
|
|
21
|
+
const pathBase = path.resolve(__dirname, '..', '..', '..', 'test-assets', 'downloads', 'rec-upload', 'sub-1');
|
|
22
|
+
const path2 = path.resolve(__dirname, '..', '..', '..', 'test-assets', 'downloads', 'rec-upload', 'sub-1', 'sub-1-1');
|
|
23
23
|
|
|
24
24
|
await mkdir(pathBase, { recursive: true });
|
|
25
25
|
await mkdir(path2, { recursive: true });
|
|
26
26
|
|
|
27
27
|
for (let i = 0; i < 19; i++) {
|
|
28
|
-
const path2 = path.resolve(__dirname, '..', 'test-assets', 'downloads', 'rec-upload', 'sub-1', `sub-1-${i}`);
|
|
28
|
+
const path2 = path.resolve(__dirname, '..', '..', '..', 'test-assets', 'downloads', 'rec-upload', 'sub-1', `sub-1-${i}`);
|
|
29
29
|
await mkdir(path2, { recursive: true });
|
|
30
30
|
|
|
31
31
|
for (let i = 0; i < 3; i++) {
|
|
@@ -41,7 +41,7 @@ export async function createTestDirForRecursiveUpload() {
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
export function getPathForFile(fileName: string) {
|
|
44
|
-
return path.resolve(__dirname, '..', 'test-assets', fileName);
|
|
44
|
+
return path.resolve(__dirname, '..', '..', '..', 'test-assets', fileName);
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
export function generateKeys() {
|
|
@@ -69,7 +69,7 @@ export async function initContainer(name: string): Promise<StartedTestContainer>
|
|
|
69
69
|
|
|
70
70
|
if (!fromCacheContainer) {
|
|
71
71
|
generateKeys();
|
|
72
|
-
const container1 = await GenericContainer.fromDockerfile(path.resolve(__dirname, '..'))
|
|
72
|
+
const container1 = await GenericContainer.fromDockerfile(path.resolve(__dirname, '..', '..', '..'))
|
|
73
73
|
.withCache(true)
|
|
74
74
|
.build(`pl-ssh-test-container-${name}:1.0.0`, { deleteOnExit: false });
|
|
75
75
|
|
|
@@ -88,7 +88,7 @@ export function getContainerHostAndPort(container: StartedTestContainer) {
|
|
|
88
88
|
|
|
89
89
|
function logToFile(message: string) {
|
|
90
90
|
const logFileName = 'log.txt';
|
|
91
|
-
const logFilePath = path.join(__dirname, logFileName);
|
|
91
|
+
const logFilePath = path.join(__dirname, '..', '..', '..', 'test-assets', logFileName);
|
|
92
92
|
|
|
93
93
|
const timestamp = new Date().toISOString();
|
|
94
94
|
const logMessage = `[${timestamp}] ${message}\n`;
|
|
@@ -12,7 +12,7 @@ import * as plpath from '../pl_paths';
|
|
|
12
12
|
let sshPl: SshPl;
|
|
13
13
|
const testContainer = await initContainer('pl');
|
|
14
14
|
|
|
15
|
-
const downloadDestination = upath.resolve(__dirname, '..', 'test-assets', 'downloads');
|
|
15
|
+
const downloadDestination = upath.resolve(__dirname, '..', '..', '..', 'test-assets', 'downloads');
|
|
16
16
|
|
|
17
17
|
async function cleanUp() {
|
|
18
18
|
const version = getDefaultPlVersion();
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { StartedTestContainer } from 'testcontainers';
|
|
1
2
|
import { describe, it, beforeAll, afterAll, expect } from 'vitest';
|
|
2
3
|
import { writeFileSync, readFileSync } from 'fs';
|
|
3
4
|
import { SshClient } from '../ssh';
|
|
@@ -6,9 +7,10 @@ import { downloadsFolder, cleanUp, getConnectionForSsh, getContainerHostAndPort,
|
|
|
6
7
|
import { ConsoleLoggerAdapter } from '@milaboratories/ts-helpers';
|
|
7
8
|
|
|
8
9
|
let client: SshClient;
|
|
9
|
-
|
|
10
|
+
let testContainer: StartedTestContainer;
|
|
10
11
|
|
|
11
12
|
beforeAll(async () => {
|
|
13
|
+
testContainer = await initContainer('ssh');
|
|
12
14
|
client = await SshClient.init(new ConsoleLoggerAdapter(), getConnectionForSsh(testContainer));
|
|
13
15
|
});
|
|
14
16
|
|
package/src/ssh/Dockerfile
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
FROM node:20
|
|
2
|
-
|
|
3
|
-
RUN apt-get update && \
|
|
4
|
-
apt-get install -y openssh-server && \
|
|
5
|
-
mkdir /var/run/sshd
|
|
6
|
-
|
|
7
|
-
# RUN echo 'root:rootpassword' | chpasswd
|
|
8
|
-
|
|
9
|
-
RUN useradd 'pl-doctor'
|
|
10
|
-
RUN echo 'pl-doctor:pl-doctor-password' | chpasswd
|
|
11
|
-
|
|
12
|
-
RUN sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config && \
|
|
13
|
-
sed -i 's/^#PubkeyAuthentication yes/PubkeyAuthentication yes/' /etc/ssh/sshd_config
|
|
14
|
-
|
|
15
|
-
RUN apt-get install -y locales && \
|
|
16
|
-
locale-gen en_US.UTF-8
|
|
17
|
-
ENV LANG en_US.UTF-8
|
|
18
|
-
|
|
19
|
-
EXPOSE 22 3001
|
|
20
|
-
|
|
21
|
-
COPY ./test-assets/pub-key.pub /home/pl-doctor/.ssh/authorized_keys
|
|
22
|
-
COPY ./test-assets/simple-server.js /home/pl-doctor/simple-server.js
|
|
23
|
-
|
|
24
|
-
RUN chmod 755 /home/pl-doctor
|
|
25
|
-
RUN chown pl-doctor:pl-doctor /home/pl-doctor
|
|
26
|
-
|
|
27
|
-
RUN chmod +x /home/pl-doctor/simple-server.js
|
|
28
|
-
|
|
29
|
-
CMD ["/bin/bash", "-c", "/usr/sbin/sshd -D & node /home/pl-doctor/simple-server.js"]
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
const http = require('http');
|
|
2
|
-
const PORT = 3001;
|
|
3
|
-
const MESSAGE = "Hello, this is a simple Node.js server!";
|
|
4
|
-
const server = http.createServer((req, res) => {
|
|
5
|
-
res.writeHead(200, { 'Content-Type': 'text/plain' });
|
|
6
|
-
res.end(MESSAGE);
|
|
7
|
-
});
|
|
8
|
-
server.listen(PORT, () => {
|
|
9
|
-
console.log(`Server is running on port ${PORT}`);
|
|
10
|
-
});
|