1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | /**
|
4 | * Class representing a service
|
5 | */
|
6 | class Service {
|
7 | /**
|
8 | * Create a service
|
9 | * @param {Modem} modem Modem to connect to the remote service
|
10 | * @param {string} id Id of the service (optional)
|
11 | */
|
12 | constructor(modem, id) {
|
13 | this.data = {};
|
14 | this.modem = modem;
|
15 | this.id = id;
|
16 | }
|
17 | /**
|
18 | * Update a service
|
19 | * https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/update-a-service
|
20 | * @param {Object} opts Query params in the request (optional)
|
21 | * @return {Promise} Promise return the new service
|
22 | */
|
23 | update(opts) {
|
24 | const call = {
|
25 | path: `/services/${this.id}/update?`,
|
26 | method: 'POST',
|
27 | options: opts,
|
28 | statusCodes: {
|
29 | 200: true,
|
30 | 404: 'no such service',
|
31 | 500: 'server error'
|
32 | }
|
33 | };
|
34 | return new Promise((resolve, reject) => {
|
35 | this.modem.dial(call, (err, conf) => {
|
36 | if (err)
|
37 | return reject(err);
|
38 | const service = new Service(this.modem, this.id);
|
39 | service.data = conf;
|
40 | resolve(service);
|
41 | });
|
42 | });
|
43 | }
|
44 | /**
|
45 | * Get low-level information on a service
|
46 | * https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/inspect-one-or-more-services
|
47 | * The reason why this module isn't called inspect is because that interferes with the inspect utility of service.
|
48 | * @param {Object} opts Query params in the request (optional)
|
49 | * @return {Promise} Promise return the service
|
50 | */
|
51 | status(opts) {
|
52 | const call = {
|
53 | path: `/services/${this.id}?`,
|
54 | method: 'GET',
|
55 | options: opts,
|
56 | statusCodes: {
|
57 | 200: true,
|
58 | 404: 'no such service',
|
59 | 500: 'server error'
|
60 | }
|
61 | };
|
62 | return new Promise((resolve, reject) => {
|
63 | this.modem.dial(call, (err, conf) => {
|
64 | if (err)
|
65 | return reject(err);
|
66 | const service = new Service(this.modem, this.id);
|
67 | service.data = conf;
|
68 | resolve(service);
|
69 | });
|
70 | });
|
71 | }
|
72 | /**
|
73 | * Remove a service
|
74 | * https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/remove-a-service
|
75 | * @param {Object} opts Query params in the request (optional)
|
76 | * @return {Promise} Promise return the result
|
77 | */
|
78 | remove(opts) {
|
79 | const call = {
|
80 | path: `/services/${this.id}?`,
|
81 | method: 'DELETE',
|
82 | options: opts,
|
83 | statusCodes: {
|
84 | 200: true,
|
85 | 404: 'no such service',
|
86 | 500: 'server error'
|
87 | }
|
88 | };
|
89 | return new Promise((resolve, reject) => {
|
90 | this.modem.dial(call, (err, res) => {
|
91 | if (err)
|
92 | return reject(err);
|
93 | resolve(res);
|
94 | });
|
95 | });
|
96 | }
|
97 | /**
|
98 | * Logs of a service
|
99 | * https://docs.docker.com/engine/api/v1.27/#operation/ServiceLogs
|
100 | * @param {Object} opts Query params in the request (optional)
|
101 | * @return {Promise} Promise return the result
|
102 | */
|
103 | logs(opts) {
|
104 | const call = {
|
105 | path: `/services/${this.id}/logs?`,
|
106 | method: 'GET',
|
107 | options: opts,
|
108 | isStream: true,
|
109 | statusCodes: {
|
110 | 101: true,
|
111 | 200: true,
|
112 | 404: 'no such service',
|
113 | 500: 'server error',
|
114 | 501: 'use --experimental to see this',
|
115 | 503: 'node is not part of a swarm'
|
116 | }
|
117 | };
|
118 | return new Promise((resolve, reject) => {
|
119 | this.modem.dial(call, (err, logs) => {
|
120 | if (err)
|
121 | return reject(err);
|
122 | resolve(logs);
|
123 | });
|
124 | });
|
125 | }
|
126 | }
|
127 | exports.Service = Service;
|
128 | class default_1 {
|
129 | /**
|
130 | * Create a service
|
131 | * @param {Modem} modem Modem to connect to the remote service
|
132 | */
|
133 | constructor(modem) {
|
134 | this.modem = modem;
|
135 | }
|
136 | /**
|
137 | * Get a Service object
|
138 | * @param {id} string ID of the secret
|
139 | * @return {Network}
|
140 | */
|
141 | get(id) {
|
142 | return new Service(this.modem, id);
|
143 | }
|
144 | /**
|
145 | * Create a service
|
146 | * https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/create-a-service
|
147 | * @param {Object} opts Query params in the request (optional)
|
148 | * @return {Promise} Promise return the new service
|
149 | */
|
150 | create(opts) {
|
151 | const call = {
|
152 | path: '/services/create?',
|
153 | method: 'POST',
|
154 | options: opts,
|
155 | statusCodes: {
|
156 | 201: true,
|
157 | 406: 'node is not part of a swarm',
|
158 | 409: 'name conflicts'
|
159 | }
|
160 | };
|
161 | return new Promise((resolve, reject) => {
|
162 | this.modem.dial(call, (err, conf) => {
|
163 | if (err)
|
164 | return reject(err);
|
165 | const service = new Service(this.modem, conf.ID);
|
166 | service.data = conf;
|
167 | resolve(service);
|
168 | });
|
169 | });
|
170 | }
|
171 | /**
|
172 | * Get the list of services
|
173 | * https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/list-services
|
174 | * @param {Object} opts Query params in the request (optional)
|
175 | * @return {Promise} Promise returning the result as a list of services
|
176 | */
|
177 | list(opts) {
|
178 | const call = {
|
179 | path: '/services?',
|
180 | method: 'GET',
|
181 | options: opts,
|
182 | statusCodes: {
|
183 | 200: true,
|
184 | 500: 'server error'
|
185 | }
|
186 | };
|
187 | return new Promise((resolve, reject) => {
|
188 | this.modem.dial(call, (err, result) => {
|
189 | if (err)
|
190 | return reject(err);
|
191 | resolve(result.map((conf) => {
|
192 | const service = new Service(this.modem, conf.ID);
|
193 | service.data = conf;
|
194 | return service;
|
195 | }));
|
196 | });
|
197 | });
|
198 | }
|
199 | }
|
200 | exports.default = default_1;
|
201 | //# sourceMappingURL=service.js.map |
\ | No newline at end of file |