1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | /**
|
4 | * Class reprensenting a network
|
5 | */
|
6 | class Network {
|
7 | /**
|
8 | * Creates a new network
|
9 | * @param {Modem} modem Modem to connect to the remote service
|
10 | * @param {string} id Id of the network (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 network
|
19 | * https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/inspect-network
|
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 network
|
23 | */
|
24 | status(opts) {
|
25 | const call = {
|
26 | path: `/networks/${this.id}?`,
|
27 | method: 'GET',
|
28 | options: opts,
|
29 | statusCodes: {
|
30 | 200: true,
|
31 | 404: 'no such network',
|
32 | 500: 'server error'
|
33 | }
|
34 | };
|
35 | return new Promise((resolve, reject) => {
|
36 | this.modem.dial(call, (err, conf) => {
|
37 | if (err)
|
38 | return reject(err);
|
39 | const network = new Network(this.modem, this.id);
|
40 | network.data = conf;
|
41 | resolve(network);
|
42 | });
|
43 | });
|
44 | }
|
45 | /**
|
46 | * Remove a network
|
47 | * https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/remove-a-network
|
48 | * @param {Object} opts Query params in the request (optional)
|
49 | * @return {Promise} Promise return the result
|
50 | */
|
51 | remove(opts) {
|
52 | const call = {
|
53 | path: `/networks/${this.id}?`,
|
54 | method: 'DELETE',
|
55 | options: opts,
|
56 | statusCodes: {
|
57 | 204: true,
|
58 | 404: 'no such network',
|
59 | 500: 'server error'
|
60 | }
|
61 | };
|
62 | return new Promise((resolve, reject) => {
|
63 | this.modem.dial(call, (err) => {
|
64 | if (err)
|
65 | return reject(err);
|
66 | resolve();
|
67 | });
|
68 | });
|
69 | }
|
70 | /**
|
71 | * Connect a container into the network
|
72 | * https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/connect-a-container-to-a-network
|
73 | * @param {Object} opts Query params in the request (optional)
|
74 | * @return {Promise} Promise return the network
|
75 | */
|
76 | connect(opts) {
|
77 | const call = {
|
78 | path: `/networks/${this.id}/connect?`,
|
79 | method: 'POST',
|
80 | options: opts,
|
81 | statusCodes: {
|
82 | 200: true,
|
83 | 403: 'operation not supported for swarm scoped network',
|
84 | 404: 'network or container not found',
|
85 | 500: 'server error'
|
86 | }
|
87 | };
|
88 | return new Promise((resolve, reject) => {
|
89 | this.modem.dial(call, (err, conf) => {
|
90 | if (err)
|
91 | return reject(err);
|
92 | const network = new Network(this.modem, this.id);
|
93 | network.data = conf;
|
94 | resolve(network);
|
95 | });
|
96 | });
|
97 | }
|
98 | /**
|
99 | * Disonnect a container into the network
|
100 | * https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/disconnect-a-container-from-a-network
|
101 | * @param {Object} opts Query params in the request (optional)
|
102 | * @return {Promise} Promise return the network
|
103 | */
|
104 | disconnect(opts) {
|
105 | const call = {
|
106 | path: `/networks/${this.id}/disconnect?`,
|
107 | method: 'POST',
|
108 | options: opts,
|
109 | statusCodes: {
|
110 | 200: true,
|
111 | 403: 'operation not supported for swarm scoped network',
|
112 | 404: 'network or container not found',
|
113 | 500: 'server error'
|
114 | }
|
115 | };
|
116 | return new Promise((resolve, reject) => {
|
117 | this.modem.dial(call, (err, conf) => {
|
118 | if (err)
|
119 | return reject(err);
|
120 | const network = new Network(this.modem, this.id);
|
121 | network.data = conf;
|
122 | resolve(network);
|
123 | });
|
124 | });
|
125 | }
|
126 | }
|
127 | exports.Network = Network;
|
128 | class default_1 {
|
129 | constructor(modem) {
|
130 | this.modem = modem;
|
131 | }
|
132 | /**
|
133 | * Get a Network object
|
134 | * @param {id} string ID of the secret
|
135 | * @return {Network}
|
136 | */
|
137 | get(id) {
|
138 | return new Network(this.modem, id);
|
139 | }
|
140 | /**
|
141 | * Get the list of networks
|
142 | * https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/list-networks
|
143 | * @param {Object} opts Query params in the request (optional)
|
144 | * @return {Promise} Promise returning the result as a list of networks
|
145 | */
|
146 | list(opts) {
|
147 | const call = {
|
148 | path: '/networks?',
|
149 | method: 'GET',
|
150 | options: opts,
|
151 | statusCodes: {
|
152 | 200: true,
|
153 | 500: 'server error'
|
154 | }
|
155 | };
|
156 | return new Promise((resolve, reject) => {
|
157 | this.modem.dial(call, (err, networks) => {
|
158 | if (err)
|
159 | return reject(err);
|
160 | if (!networks || !networks.length)
|
161 | return resolve([]);
|
162 | resolve(networks.map((conf) => {
|
163 | const network = new Network(this.modem, conf.Id);
|
164 | network.data = conf;
|
165 | return network;
|
166 | }));
|
167 | });
|
168 | });
|
169 | }
|
170 | /**
|
171 | * Create a network
|
172 | * https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/create-a-network
|
173 | * @param {Object} opts Query params in the request (optional)
|
174 | * @return {Promise} Promise return the new network
|
175 | */
|
176 | create(opts) {
|
177 | const call = {
|
178 | path: '/networks/create?',
|
179 | method: 'POST',
|
180 | options: opts,
|
181 | statusCodes: {
|
182 | 201: true,
|
183 | 404: 'plugin not found',
|
184 | 500: 'server error'
|
185 | }
|
186 | };
|
187 | return new Promise((resolve, reject) => {
|
188 | this.modem.dial(call, (err, conf) => {
|
189 | if (err)
|
190 | return reject(err);
|
191 | const network = new Network(this.modem, conf.Id);
|
192 | network.data = conf;
|
193 | resolve(network);
|
194 | });
|
195 | });
|
196 | }
|
197 | /**
|
198 | * Prune network
|
199 | * https://docs.docker.com/engine/api/v1.25/#operation/NetworkPrune
|
200 | * @param {Object} opts Query params in the request (optional)
|
201 | * @return {Promise} Promise returning the container
|
202 | */
|
203 | prune(opts) {
|
204 | const call = {
|
205 | path: `/networks/prune`,
|
206 | method: 'POST',
|
207 | options: opts,
|
208 | statusCodes: {
|
209 | 200: true,
|
210 | 500: 'server error'
|
211 | }
|
212 | };
|
213 | return new Promise((resolve, reject) => {
|
214 | this.modem.dial(call, (err, res) => {
|
215 | if (err)
|
216 | return reject(err);
|
217 | resolve(res);
|
218 | });
|
219 | });
|
220 | }
|
221 | }
|
222 | exports.default = default_1;
|
223 | //# sourceMappingURL=network.js.map |
\ | No newline at end of file |