UNPKG

5.05 kBJavaScriptView Raw
1'use strict';
2Object.defineProperty(exports, "__esModule", { value: true });
3const Modem = require("docker-modem");
4const container_1 = require("./container");
5const image_1 = require("./image");
6const volume_1 = require("./volume");
7const network_1 = require("./network");
8const node_1 = require("./node");
9const plugin_1 = require("./plugin");
10const secret_1 = require("./secret");
11const service_1 = require("./service");
12const swarm_1 = require("./swarm");
13const task_1 = require("./task");
14/**
15 * Docker class with all methods
16 */
17class Docker {
18 /**
19 * Creates the Docker object
20 * @param {Object} opts Docker options
21 */
22 constructor(opts) {
23 this.modem = new Modem(opts);
24 this.container = new container_1.default(this.modem);
25 this.image = new image_1.default(this.modem);
26 this.volume = new volume_1.default(this.modem);
27 this.network = new network_1.default(this.modem);
28 this.node = new node_1.default(this.modem);
29 this.plugin = new plugin_1.default(this.modem);
30 this.secret = new secret_1.default(this.modem);
31 this.service = new service_1.default(this.modem);
32 this.swarm = new swarm_1.default(this.modem);
33 this.task = new task_1.default(this.modem);
34 }
35 /**
36 * Validate credentials for a registry and get identity token,
37 * if available, for accessing the registry without password
38 * https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/check-auth-configuration
39 * @param {Object} opts Auth options
40 * @return {Promise} Promise returning the result
41 */
42 auth(opts) {
43 const call = {
44 path: '/auth?',
45 method: 'POST',
46 options: opts,
47 statusCodes: {
48 200: true,
49 204: true,
50 500: 'server error'
51 }
52 };
53 return new Promise((resolve, reject) => {
54 this.modem.dial(call, (err, data) => {
55 if (err)
56 return reject(err);
57 resolve(data);
58 });
59 });
60 }
61 /**
62 * Get system wide information about docker
63 * https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/display-system-wide-information
64 * @return {Promise} Promise returning the result
65 */
66 info() {
67 const call = {
68 path: '/info?',
69 method: 'GET',
70 statusCodes: {
71 200: true,
72 500: 'server error'
73 }
74 };
75 return new Promise((resolve, reject) => {
76 this.modem.dial(call, (err, data) => {
77 if (err)
78 return reject(err);
79 resolve(data);
80 });
81 });
82 }
83 /**
84 * Get docker version information of server
85 * https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/show-the-docker-version-information
86 * @return {Promise} Promise returning the result
87 */
88 version() {
89 const call = {
90 path: '/version?',
91 method: 'GET',
92 statusCodes: {
93 200: true,
94 500: 'server error'
95 }
96 };
97 return new Promise((resolve, reject) => {
98 this.modem.dial(call, (err, data) => {
99 if (err)
100 return reject(err);
101 resolve(data);
102 });
103 });
104 }
105 /**
106 * Ping the docker server
107 * https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/ping-the-docker-server
108 * @return {Promise} Promise returning the result
109 */
110 ping() {
111 const call = {
112 path: '/_ping?',
113 method: 'GET',
114 statusCodes: {
115 200: true,
116 500: 'server error'
117 }
118 };
119 return new Promise((resolve, reject) => {
120 this.modem.dial(call, (err, data) => {
121 if (err)
122 return reject(err);
123 resolve(data);
124 });
125 });
126 }
127 /**
128 * Get container events from docker, can be in real time via streaming or via polling (with since)
129 * https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/monitor-docker-s-events
130 * @param {Object} opts Options to send with the request (optional)
131 * @return {Promise} Promise returning the result
132 */
133 events(opts = {}) {
134 const call = {
135 path: '/events?',
136 method: 'GET',
137 options: opts,
138 isStream: true,
139 statusCodes: {
140 200: true,
141 500: 'server error'
142 }
143 };
144 return new Promise((resolve, reject) => {
145 this.modem.dial(call, (err, data) => {
146 if (err)
147 return reject(err);
148 resolve(data);
149 });
150 });
151 }
152}
153exports.Docker = Docker;
154//# sourceMappingURL=docker.js.map
\No newline at end of file