UNPKG

4.71 kBJavaScriptView Raw
1'use strict';
2Object.defineProperty(exports, "__esModule", { value: true });
3/**
4 * Class representing a secret
5 */
6class Secret {
7 /**
8 * Create a secret
9 * @param {Modem} modem Modem to connect to the remote service
10 * @param {string} id Id of the secret (optional)
11 */
12 constructor(modem, id) {
13 this.data = {};
14 this.modem = modem;
15 this.id = id;
16 }
17 /**
18 * Get low-level information on a secret
19 * https://docs.docker.com/engine/api/v1.25/#operation/SecretInspect
20 * The reason why this module isn't called inspect is because that interferes with the inspect utility of node.
21 * @param {Object} opts Query params in the request (optional)
22 * @return {Promise} Promise return the secret
23 */
24 status(opts) {
25 const call = {
26 path: `/secrets/${this.id}?`,
27 method: 'GET',
28 options: opts,
29 statusCodes: {
30 200: true,
31 404: 'no such secret',
32 406: '406 node is not part of a swarm',
33 500: 'server error'
34 }
35 };
36 return new Promise((resolve, reject) => {
37 this.modem.dial(call, (err, conf) => {
38 if (err)
39 return reject(err);
40 const secret = new Secret(this.modem, this.id);
41 secret.data = conf;
42 resolve(secret);
43 });
44 });
45 }
46 /**
47 * Remove a secret
48 * https://docs.docker.com/engine/api/v1.25/#operation/SecretDelete
49 * @param {Object} opts Query params in the request (optional)
50 * @return {Promise} Promise return the result
51 */
52 remove(opts) {
53 const call = {
54 path: `/secrets/${this.id}?`,
55 method: 'DELETE',
56 options: opts,
57 statusCodes: {
58 204: true,
59 404: 'no such secret',
60 500: 'server error'
61 }
62 };
63 return new Promise((resolve, reject) => {
64 this.modem.dial(call, (err) => {
65 if (err)
66 return reject(err);
67 resolve();
68 });
69 });
70 }
71}
72exports.Secret = Secret;
73class default_1 {
74 /**
75 * Create a secret
76 * @param {Modem} modem Modem to connect to the remote service
77 */
78 constructor(modem) {
79 this.modem = modem;
80 }
81 /**
82 * Get a Secret object
83 * @param {id} string ID of the secret
84 * @return {Secret}
85 */
86 get(id) {
87 return new Secret(this.modem, id);
88 }
89 /**
90 * Get the list of secrets
91 * https://docs.docker.com/engine/api/v1.25/#operation/SecretList
92 * @param {Object} opts Query params in the request (optional)
93 * @return {Promise} Promise returning the result as a list of secrets
94 */
95 list(opts) {
96 const call = {
97 path: '/secrets',
98 method: 'GET',
99 options: opts,
100 statusCodes: {
101 200: true,
102 500: 'server error'
103 }
104 };
105 return new Promise((resolve, reject) => {
106 this.modem.dial(call, (err, result) => {
107 if (err)
108 return reject(err);
109 if (!result.Secrets || !result.Secrets.length)
110 return resolve([]);
111 resolve(result.Secrets.map((conf) => {
112 const secret = new Secret(this.modem, conf.Name);
113 secret.data = conf;
114 return secret;
115 }));
116 });
117 });
118 }
119 /**
120 * Create a secret
121 * https://docs.docker.com/engine/api/v1.25/#operation/SecretCreate
122 * @param {Object} opts Query params in the request (optional)
123 * @return {Promise} Promise return the new secret
124 */
125 create(opts) {
126 const call = {
127 path: '/secrets/create?',
128 method: 'POST',
129 options: opts,
130 statusCodes: {
131 201: true,
132 406: 'server error or node is not part of a swarm',
133 409: '409 name conflicts with an existing object',
134 500: 'server error'
135 }
136 };
137 return new Promise((resolve, reject) => {
138 this.modem.dial(call, (err, conf) => {
139 if (err)
140 return reject(err);
141 const secret = new Secret(this.modem, conf.ID);
142 secret.data = conf;
143 resolve(secret);
144 });
145 });
146 }
147}
148exports.default = default_1;
149//# sourceMappingURL=secret.js.map
\No newline at end of file