1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | /**
|
4 | * Class representing a secret
|
5 | */
|
6 | class 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 | }
|
72 | exports.Secret = Secret;
|
73 | class 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 | }
|
148 | exports.default = default_1;
|
149 | //# sourceMappingURL=secret.js.map |
\ | No newline at end of file |