@highstate/timeweb 0.9.4 → 0.9.5

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,6 +1,6 @@
1
1
  {
2
2
  "sourceHashes": {
3
- "./dist/connection/index.js": "78cfff5332804242445b9032b29cad52029f3eb48be3220bfb776bc7fe74ec49",
4
- "./dist/virtual-machine/index.js": "9ffdde5fc9722d3bd30fc07d275c6b12f1c77bdfec1ef97c7ea0abc68bbd08f1"
3
+ "./dist/connection/index.js": "15bab5102c6f4d6a8fd0a6a7c41a31bda5e64fb885d6b9185946fc61a9d1e1b3",
4
+ "./dist/virtual-machine/index.js": "fb7dd7e4967deae73af88ab6d9f81f68b4a80a9ccb137bae2a7ce284450eb586"
5
5
  }
6
6
  }
@@ -1,8 +1,14 @@
1
1
  // src/virtual-machine/index.ts
2
2
  import { Provider, SshKey, FloatingIp, Server as TimewebServer } from "@highstate/timeweb-sdk";
3
3
  import { timeweb } from "@highstate/library";
4
- import { forUnit, getResourceComment, interpolate, output } from "@highstate/pulumi";
5
- import { createSshTerminal, getOrCreateSshKeyPair } from "@highstate/common";
4
+ import { forUnit, getResourceComment, interpolate, toPromise } from "@highstate/pulumi";
5
+ import {
6
+ createServerEntity,
7
+ createSshTerminal,
8
+ getOrCreateSshKeyPair,
9
+ l3EndpointToString,
10
+ parseL3Endpoint
11
+ } from "@highstate/common";
6
12
  import { local } from "@pulumi/command";
7
13
  var { name, args, inputs, secrets, outputs } = forUnit(timeweb.virtualMachine);
8
14
  var provider = new Provider(name, { token: inputs.connection.apiToken });
@@ -24,7 +30,7 @@ var floatingIp = new FloatingIp(
24
30
  },
25
31
  { provider }
26
32
  );
27
- var timewebServer = new TimewebServer(
33
+ new TimewebServer(
28
34
  name,
29
35
  {
30
36
  name,
@@ -38,22 +44,25 @@ var timewebServer = new TimewebServer(
38
44
  },
39
45
  { provider }
40
46
  );
41
- var serverEntity = output({
42
- endpoint: floatingIp.ip,
43
- hostname: timewebServer.name,
44
- sshCredentials: {
45
- privateKey: keyPair.privateKey
46
- }
47
- });
48
- new local.Command("check-availability", {
47
+ var serverIp = await toPromise(floatingIp.ip);
48
+ var endpoint = parseL3Endpoint(serverIp);
49
+ var availabilityCommand = new local.Command("check-availability", {
49
50
  create: interpolate`while ! ping -c 1 ${floatingIp.ip}; do echo "Waiting for server to be available..."; sleep 5; done`
50
51
  });
52
+ var server = availabilityCommand.stdout.apply(
53
+ () => createServerEntity(name, endpoint, 22, "root", void 0, keyPair.privateKey)
54
+ );
51
55
  var virtual_machine_default = outputs({
52
- server: serverEntity,
53
- $terminals: [serverEntity.apply(createSshTerminal)],
56
+ server,
54
57
  $status: {
55
- ip: floatingIp.ip
56
- }
58
+ hostname: {
59
+ value: server.hostname
60
+ },
61
+ endpoints: {
62
+ value: [l3EndpointToString(endpoint)]
63
+ }
64
+ },
65
+ $terminals: [createSshTerminal(server.ssh)]
57
66
  });
58
67
  export {
59
68
  virtual_machine_default as default
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/virtual-machine/index.ts"],"sourcesContent":["import { Provider, SshKey, FloatingIp, Server as TimewebServer } from \"@highstate/timeweb-sdk\"\nimport { common, timeweb } from \"@highstate/library\"\nimport { forUnit, getResourceComment, interpolate, Output, output } from \"@highstate/pulumi\"\nimport { createSshTerminal, getOrCreateSshKeyPair } from \"@highstate/common\"\nimport { local } from \"@pulumi/command\"\n\nconst { name, args, inputs, secrets, outputs } = forUnit(timeweb.virtualMachine)\n\nconst provider = new Provider(name, { token: inputs.connection.apiToken })\n\nconst keyPair = getOrCreateSshKeyPair(inputs, secrets)\n\nconst sshKey = new SshKey(\n name,\n {\n name,\n body: keyPair.publicKey,\n },\n { provider },\n)\n\nconst floatingIp = new FloatingIp(\n name,\n {\n comment: getResourceComment(),\n availabilityZone: args.availabilityZone,\n ddosGuard: false,\n },\n { provider },\n)\n\nconst timewebServer = new TimewebServer(\n name,\n {\n name,\n comment: getResourceComment(),\n availabilityZone: args.availabilityZone,\n floatingIpId: floatingIp.id,\n presetId: args.presetId,\n osId: args.osId,\n isRootPasswordRequired: false,\n sshKeysIds: [sshKey.sshKeyId.apply(Number)],\n },\n { provider },\n)\n\nconst serverEntity: Output<common.Server> = output({\n endpoint: floatingIp.ip,\n hostname: timewebServer.name,\n sshCredentials: {\n privateKey: keyPair.privateKey,\n },\n})\n\nnew local.Command(\"check-availability\", {\n create: interpolate`while ! ping -c 1 ${floatingIp.ip}; do echo \"Waiting for server to be available...\"; sleep 5; done`,\n})\n\nexport default outputs({\n server: serverEntity,\n $terminals: [serverEntity.apply(createSshTerminal)],\n $status: {\n ip: floatingIp.ip,\n },\n})\n"],"mappings":";AAAA,SAAS,UAAU,QAAQ,YAAY,UAAU,qBAAqB;AACtE,SAAiB,eAAe;AAChC,SAAS,SAAS,oBAAoB,aAAqB,cAAc;AACzE,SAAS,mBAAmB,6BAA6B;AACzD,SAAS,aAAa;AAEtB,IAAM,EAAE,MAAM,MAAM,QAAQ,SAAS,QAAQ,IAAI,QAAQ,QAAQ,cAAc;AAE/E,IAAM,WAAW,IAAI,SAAS,MAAM,EAAE,OAAO,OAAO,WAAW,SAAS,CAAC;AAEzE,IAAM,UAAU,sBAAsB,QAAQ,OAAO;AAErD,IAAM,SAAS,IAAI;AAAA,EACjB;AAAA,EACA;AAAA,IACE;AAAA,IACA,MAAM,QAAQ;AAAA,EAChB;AAAA,EACA,EAAE,SAAS;AACb;AAEA,IAAM,aAAa,IAAI;AAAA,EACrB;AAAA,EACA;AAAA,IACE,SAAS,mBAAmB;AAAA,IAC5B,kBAAkB,KAAK;AAAA,IACvB,WAAW;AAAA,EACb;AAAA,EACA,EAAE,SAAS;AACb;AAEA,IAAM,gBAAgB,IAAI;AAAA,EACxB;AAAA,EACA;AAAA,IACE;AAAA,IACA,SAAS,mBAAmB;AAAA,IAC5B,kBAAkB,KAAK;AAAA,IACvB,cAAc,WAAW;AAAA,IACzB,UAAU,KAAK;AAAA,IACf,MAAM,KAAK;AAAA,IACX,wBAAwB;AAAA,IACxB,YAAY,CAAC,OAAO,SAAS,MAAM,MAAM,CAAC;AAAA,EAC5C;AAAA,EACA,EAAE,SAAS;AACb;AAEA,IAAM,eAAsC,OAAO;AAAA,EACjD,UAAU,WAAW;AAAA,EACrB,UAAU,cAAc;AAAA,EACxB,gBAAgB;AAAA,IACd,YAAY,QAAQ;AAAA,EACtB;AACF,CAAC;AAED,IAAI,MAAM,QAAQ,sBAAsB;AAAA,EACtC,QAAQ,gCAAgC,WAAW,EAAE;AACvD,CAAC;AAED,IAAO,0BAAQ,QAAQ;AAAA,EACrB,QAAQ;AAAA,EACR,YAAY,CAAC,aAAa,MAAM,iBAAiB,CAAC;AAAA,EAClD,SAAS;AAAA,IACP,IAAI,WAAW;AAAA,EACjB;AACF,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../src/virtual-machine/index.ts"],"sourcesContent":["import { Provider, SshKey, FloatingIp, Server as TimewebServer } from \"@highstate/timeweb-sdk\"\nimport { timeweb } from \"@highstate/library\"\nimport { forUnit, getResourceComment, interpolate, toPromise } from \"@highstate/pulumi\"\nimport {\n createServerEntity,\n createSshTerminal,\n getOrCreateSshKeyPair,\n l3EndpointToString,\n parseL3Endpoint,\n} from \"@highstate/common\"\nimport { local } from \"@pulumi/command\"\n\nconst { name, args, inputs, secrets, outputs } = forUnit(timeweb.virtualMachine)\n\nconst provider = new Provider(name, { token: inputs.connection.apiToken })\n\nconst keyPair = getOrCreateSshKeyPair(inputs, secrets)\n\nconst sshKey = new SshKey(\n name,\n {\n name,\n body: keyPair.publicKey,\n },\n { provider },\n)\n\nconst floatingIp = new FloatingIp(\n name,\n {\n comment: getResourceComment(),\n availabilityZone: args.availabilityZone,\n ddosGuard: false,\n },\n { provider },\n)\n\nnew TimewebServer(\n name,\n {\n name,\n comment: getResourceComment(),\n availabilityZone: args.availabilityZone,\n floatingIpId: floatingIp.id,\n presetId: args.presetId,\n osId: args.osId,\n isRootPasswordRequired: false,\n sshKeysIds: [sshKey.sshKeyId.apply(Number)],\n },\n { provider },\n)\n\nconst serverIp = await toPromise(floatingIp.ip)\nconst endpoint = parseL3Endpoint(serverIp)\n\nconst availabilityCommand = new local.Command(\"check-availability\", {\n create: interpolate`while ! ping -c 1 ${floatingIp.ip}; do echo \"Waiting for server to be available...\"; sleep 5; done`,\n})\n\nconst server = availabilityCommand.stdout.apply(() =>\n createServerEntity(name, endpoint, 22, \"root\", undefined, keyPair.privateKey),\n)\n\nexport default outputs({\n server,\n\n $status: {\n hostname: {\n value: server.hostname,\n },\n endpoints: {\n value: [l3EndpointToString(endpoint)],\n },\n },\n\n $terminals: [createSshTerminal(server.ssh)],\n})\n"],"mappings":";AAAA,SAAS,UAAU,QAAQ,YAAY,UAAU,qBAAqB;AACtE,SAAS,eAAe;AACxB,SAAS,SAAS,oBAAoB,aAAa,iBAAiB;AACpE;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,aAAa;AAEtB,IAAM,EAAE,MAAM,MAAM,QAAQ,SAAS,QAAQ,IAAI,QAAQ,QAAQ,cAAc;AAE/E,IAAM,WAAW,IAAI,SAAS,MAAM,EAAE,OAAO,OAAO,WAAW,SAAS,CAAC;AAEzE,IAAM,UAAU,sBAAsB,QAAQ,OAAO;AAErD,IAAM,SAAS,IAAI;AAAA,EACjB;AAAA,EACA;AAAA,IACE;AAAA,IACA,MAAM,QAAQ;AAAA,EAChB;AAAA,EACA,EAAE,SAAS;AACb;AAEA,IAAM,aAAa,IAAI;AAAA,EACrB;AAAA,EACA;AAAA,IACE,SAAS,mBAAmB;AAAA,IAC5B,kBAAkB,KAAK;AAAA,IACvB,WAAW;AAAA,EACb;AAAA,EACA,EAAE,SAAS;AACb;AAEA,IAAI;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA,SAAS,mBAAmB;AAAA,IAC5B,kBAAkB,KAAK;AAAA,IACvB,cAAc,WAAW;AAAA,IACzB,UAAU,KAAK;AAAA,IACf,MAAM,KAAK;AAAA,IACX,wBAAwB;AAAA,IACxB,YAAY,CAAC,OAAO,SAAS,MAAM,MAAM,CAAC;AAAA,EAC5C;AAAA,EACA,EAAE,SAAS;AACb;AAEA,IAAM,WAAW,MAAM,UAAU,WAAW,EAAE;AAC9C,IAAM,WAAW,gBAAgB,QAAQ;AAEzC,IAAM,sBAAsB,IAAI,MAAM,QAAQ,sBAAsB;AAAA,EAClE,QAAQ,gCAAgC,WAAW,EAAE;AACvD,CAAC;AAED,IAAM,SAAS,oBAAoB,OAAO;AAAA,EAAM,MAC9C,mBAAmB,MAAM,UAAU,IAAI,QAAQ,QAAW,QAAQ,UAAU;AAC9E;AAEA,IAAO,0BAAQ,QAAQ;AAAA,EACrB;AAAA,EAEA,SAAS;AAAA,IACP,UAAU;AAAA,MACR,OAAO,OAAO;AAAA,IAChB;AAAA,IACA,WAAW;AAAA,MACT,OAAO,CAAC,mBAAmB,QAAQ,CAAC;AAAA,IACtC;AAAA,EACF;AAAA,EAEA,YAAY,CAAC,kBAAkB,OAAO,GAAG,CAAC;AAC5C,CAAC;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@highstate/timeweb",
3
- "version": "0.9.4",
3
+ "version": "0.9.5",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"
@@ -16,16 +16,16 @@
16
16
  "build": "highstate build"
17
17
  },
18
18
  "dependencies": {
19
- "@highstate/common": "^0.9.4",
20
- "@highstate/k8s": "^0.9.4",
21
- "@highstate/library": "^0.9.4",
22
- "@highstate/pulumi": "^0.9.4",
23
- "@highstate/timeweb-sdk": "^0.9.4",
19
+ "@highstate/common": "^0.9.5",
20
+ "@highstate/k8s": "^0.9.5",
21
+ "@highstate/library": "^0.9.5",
22
+ "@highstate/pulumi": "^0.9.5",
23
+ "@highstate/timeweb-sdk": "^0.9.5",
24
24
  "@pulumi/command": "^1.0.2",
25
25
  "@pulumi/pulumi": "^3.165.0"
26
26
  },
27
27
  "devDependencies": {
28
- "@highstate/cli": "^0.9.4"
28
+ "@highstate/cli": "^0.9.5"
29
29
  },
30
- "gitHead": "021af8cde467823881e2dc82ccb606c9617772ea"
30
+ "gitHead": "93fa1e8b1189a5232055c852fd79a684d8b80444"
31
31
  }