From 0b91832778478e00e962510b97d9fae6c9b7e264 Mon Sep 17 00:00:00 2001 From: Nicolas Laplante Date: Sat, 25 Mar 2017 12:56:05 -0400 Subject: [PATCH 1/8] add types & mtehods from dockerode current (v2.4.2) --- types/dockerode/index.d.ts | 71 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/types/dockerode/index.d.ts b/types/dockerode/index.d.ts index 968199436a..71dac87f54 100644 --- a/types/dockerode/index.d.ts +++ b/types/dockerode/index.d.ts @@ -137,6 +137,49 @@ declare namespace Dockerode { id?: string; } + interface Plugin { + modem: any; + name: string; + remote: any; + + inspect(callback: Callback): void; + + remove(options: {}, callback: Callback): void; + remove(callback: Callback): void; + + privileges(callback: Callback): void; + + pull(options: {}, callback: Callback): void; + + enable(options: {}, callback: Callback): void; + enable(callback: Callback): void; + + disable(options: {}, callback: Callback): void; + disable(callback: Callback): void; + + push(options: {}, callback: Callback): void; + push(callback: Callback): void; + + configure(options: {}, callback: Callback): void; + configure(callback: Callback): void; + + upgrade(auth: any, options: {}, callback: Callback): void; + upgrade(auth: any, callback: Callback): void; + } + + interface Secret { + inspect(callback: Callback): void; + + update(options: {}, callback: Callback): void; + update(callback: Callback): void; + + remove(options: {}, callback: Callback): void; + remove(callback: Callback): void; + + modem: any; + id?: string; + } + interface Network { inspect(callback: Callback): void; @@ -575,6 +618,8 @@ declare class Dockerode { getVolume(name: string): Dockerode.Volume; + getPlugin(name: string, remote: any): Dockerode.Plugin; + getService(id: string): Dockerode.Service; getTask(id: string): Dockerode.Task; @@ -583,6 +628,8 @@ declare class Dockerode { getNetwork(id: string): Dockerode.Network; + getSecret(id: string): Dockerode.Secret; + getExec(id: string): Dockerode.Exec; listContainers(options: {}, callback: Callback): void; @@ -600,12 +647,22 @@ declare class Dockerode { listTasks(options: {}, callback: Callback): void; listTasks(callback: Callback): void; + listSecrets(options: {}, callback: Callback): void; + listSecrets(callback: Callback): void; + + listPlugins(options: {}, callback: Callback): void; + listPlugins(callback: Callback): void; + listVolumes(options: {}, callback: Callback): void; listVolumes(callback: Callback): void; listNetworks(options: {}, callback: Callback): void; listNetworks(callback: Callback): void; + createSecret(options: {}, callback: Callback): void; + + createPlugin(options: {}, callback: Callback): void; + createVolume(options: {}, callback: Callback): void; createService(options: {}, callback: Callback): void; @@ -614,6 +671,18 @@ declare class Dockerode { searchImages(options: {}, callback: Callback): void; + pruneImages(options: {}, callback: Callback): void; + pruneImages(callback: Callback): void; + + pruneContainers(options: {}, callback: Callback): void; + pruneContainers(callback: Callback): void; + + pruneVolumes(options: {}, callback: Callback): void; + pruneVolumes(callback: Callback): void; + + pruneNetworks(options: {}, callback: Callback): void; + pruneNetworks(callback: Callback): void; + info(callback: Callback): void; version(callback: Callback): void; @@ -638,6 +707,8 @@ declare class Dockerode { swarmUpdate(options: {}, callback: Callback): void; + swarmInspect(callback: Callback): void; + modem: any; } From a7d8ae9f4f015e685944be144a90a078fafb4680 Mon Sep 17 00:00:00 2001 From: Nicolas Laplante Date: Sat, 25 Mar 2017 13:08:42 -0400 Subject: [PATCH 2/8] add definition author --- types/dockerode/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/dockerode/index.d.ts b/types/dockerode/index.d.ts index 71dac87f54..c4f7750dfd 100644 --- a/types/dockerode/index.d.ts +++ b/types/dockerode/index.d.ts @@ -1,6 +1,6 @@ // Type definitions for dockerode 2.3 // Project: https://github.com/apocas/dockerode -// Definitions by: Carl Winkler +// Definitions by: Carl Winkler , Nicolas Laplante // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /// From 105eb862579c7e9cae4608d70ea9d95c53f95fd9 Mon Sep 17 00:00:00 2001 From: Nicolas Laplante Date: Sat, 25 Mar 2017 13:08:52 -0400 Subject: [PATCH 3/8] upgrade dockerode version --- types/dockerode/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/dockerode/index.d.ts b/types/dockerode/index.d.ts index c4f7750dfd..8c5b1f56c7 100644 --- a/types/dockerode/index.d.ts +++ b/types/dockerode/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for dockerode 2.3 +// Type definitions for dockerode 2.4.2 // Project: https://github.com/apocas/dockerode // Definitions by: Carl Winkler , Nicolas Laplante // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped From 171855d201093525e44c65c33eb49a4bba2306ce Mon Sep 17 00:00:00 2001 From: Nicolas Laplante Date: Sat, 25 Mar 2017 13:09:02 -0400 Subject: [PATCH 4/8] add tests for new api --- types/dockerode/dockerode-tests.ts | 68 +++++++++++++++++++++++++++++- 1 file changed, 67 insertions(+), 1 deletion(-) diff --git a/types/dockerode/dockerode-tests.ts b/types/dockerode/dockerode-tests.ts index 3bd1c30097..4b4e406839 100644 --- a/types/dockerode/dockerode-tests.ts +++ b/types/dockerode/dockerode-tests.ts @@ -55,4 +55,70 @@ docker.createContainer({ Tty: true }, (err, container) => { container.start((err, data) => { // NOOP }); -}); \ No newline at end of file +}); + +docker.pruneContainers((err, response) => { + // NOOP +}); + +docker.pruneImages((err, response) => { + // NOOP +}); + +docker.pruneNetworks((err, response) => { + // NOOP +}); + +docker.pruneVolumes((err, response) => { + // NOOP +}); + +const plugin = docker.getPlugin('pluginName', 'remoteName'); +plugin.configure((err, response) => { + // NOOP; +}); + +plugin.disable((err, response) => { + // NOOP +}); + +plugin.enable((err, response) => { + // NOOP +}); + +plugin.inspect((err, response) => { + // NOOP +}); + +plugin.privileges((err, response) => { + // NOOP +}); + +plugin.pull({}, (err, response) => { + // NOOP +}); + +plugin.push((err, response) => { + // NOOP +}); + +plugin.remove((err, response) => { + // NOOP +}); + +plugin.upgrade({}, (err, response) => { + // NOOP +}); + +const secret = docker.getSecret('secretName'); +secret.inspect((err, response) => { + // NOOP +}); + +secret.remove((err, response) => { + // NOOP +}); + +secret.update((err, response) => { + // NOOP +}); From 8a9add5b87f0f6b767e1de33b80e86f312de8ad2 Mon Sep 17 00:00:00 2001 From: Nicolas Laplante Date: Sat, 25 Mar 2017 13:10:28 -0400 Subject: [PATCH 5/8] remove minor from version --- types/dockerode/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/dockerode/index.d.ts b/types/dockerode/index.d.ts index 8c5b1f56c7..8f82d982c6 100644 --- a/types/dockerode/index.d.ts +++ b/types/dockerode/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for dockerode 2.4.2 +// Type definitions for dockerode 2.4 // Project: https://github.com/apocas/dockerode // Definitions by: Carl Winkler , Nicolas Laplante // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped From c7e08e933c62ec1dff93eaf1b857895669d2bfd9 Mon Sep 17 00:00:00 2001 From: Nicolas Laplante Date: Sun, 26 Mar 2017 11:48:12 -0400 Subject: [PATCH 6/8] add type definitions --- types/dockerode/index.d.ts | 165 +++++++++++++++++++++++++++++++++---- 1 file changed, 149 insertions(+), 16 deletions(-) diff --git a/types/dockerode/index.d.ts b/types/dockerode/index.d.ts index 8f82d982c6..4d9a979665 100644 --- a/types/dockerode/index.d.ts +++ b/types/dockerode/index.d.ts @@ -94,8 +94,8 @@ declare namespace Dockerode { tag(options: {}, callback: Callback): void; tag(callback: Callback): void; - remove(options: {}, callback: Callback): void; - remove(callback: Callback): void; + remove(options: {}, callback: Callback): void; + remove(callback: Callback): void; modem: any; id?: string; @@ -142,7 +142,7 @@ declare namespace Dockerode { name: string; remote: any; - inspect(callback: Callback): void; + inspect(callback: Callback): void; remove(options: {}, callback: Callback): void; remove(callback: Callback): void; @@ -168,7 +168,7 @@ declare namespace Dockerode { } interface Secret { - inspect(callback: Callback): void; + inspect(callback: Callback): void; update(options: {}, callback: Callback): void; update(callback: Callback): void; @@ -589,6 +589,139 @@ declare namespace Dockerode { protocol?: "https" | "http"; timeout?: number; } + + interface SecretVersion { + Index: number + } + + interface ServiceSpec { + Name: string + } + + interface SecretInfo { + ID: string, + Version: SecretVersion; + CreatedAt: string, + UpdatedAt?: string, + Spec?: ServiceSpec + } + + interface PluginInfo { + Id?: string; + Name: string; + Enabled: boolean; + Settings: PluginSettings; + PluginReference?: string; + Config: PluginConfig; + } + + type PluginInspectInfo = PluginInfo; + + interface PluginSettings { + Mounts: PluginMount[]; + Env: string[]; + Args: string[]; + Devices: PluginDevice[]; + } + + interface PluginConfig { + Description: string; + Documentation: string; + Interface: any; + Entrypoint: string[]; + WorkDir: string; + User?: User; + Network: Network; + Linux: Linux; + PropagatedMount: string; + Mounts: PluginMount[]; + Env: PluginEnv[]; + Args: Args; + rootfs: any; + } + + interface Interface { + Types: PluginInterfaceType[]; + Socket: string; + } + + interface PluginInterfaceType { + Prefix: string; + Capability: string; + Version: string + } + + interface PluginMount { + Name: string; + Description: string; + Settable: string[]; + Source: string; + Destination: string; + Type: string; + Options: string[] + } + + interface Linux { + Capabilities: string[]; + AllowAllDevices: boolean; + Devices: PluginDevice[]; + } + + interface PluginDevice { + Name: string; + Description: string; + Settable: string[]; + Path: string; + } + + interface Network { + Type: string; + } + + interface PluginEnv { + Name: string; + Description: string; + Settable: string[]; + Value: string; + } + + interface Args { + Name: string; + Description: string; + Settable: string[]; + Value: string; + } + + interface User { + UID: number; + GID: number; + } + + interface ImageRemoveInfo { + Untagged: string; + Deleted: string; + } + + interface PruneImagesInfo { + ImagesDeleted: ImageRemoveInfo[]; + SpaceReclaimed: number; + + } + + interface PruneVolumesInfo { + VolumesDeleted: string[]; + SpaceReclaimed: number; + } + + interface PruneContainersInfo { + ContainersDeleted: string[]; + SpaceReclaimed: number; + } + + interface PruneNetworksInfo { + NetworksDeleted: string[]; + } + } type Callback = (error?: any, result?: T) => void; @@ -647,11 +780,11 @@ declare class Dockerode { listTasks(options: {}, callback: Callback): void; listTasks(callback: Callback): void; - listSecrets(options: {}, callback: Callback): void; - listSecrets(callback: Callback): void; + listSecrets(options: {}, callback: Callback): void; + listSecrets(callback: Callback): void; - listPlugins(options: {}, callback: Callback): void; - listPlugins(callback: Callback): void; + listPlugins(options: {}, callback: Callback): void; + listPlugins(callback: Callback): void; listVolumes(options: {}, callback: Callback): void; listVolumes(callback: Callback): void; @@ -671,17 +804,17 @@ declare class Dockerode { searchImages(options: {}, callback: Callback): void; - pruneImages(options: {}, callback: Callback): void; - pruneImages(callback: Callback): void; + pruneImages(options: {}, callback: Callback): void; + pruneImages(callback: Callback): void; - pruneContainers(options: {}, callback: Callback): void; - pruneContainers(callback: Callback): void; + pruneContainers(options: {}, callback: Callback): void; + pruneContainers(callback: Callback): void; - pruneVolumes(options: {}, callback: Callback): void; - pruneVolumes(callback: Callback): void; + pruneVolumes(options: {}, callback: Callback): void; + pruneVolumes(callback: Callback): void; - pruneNetworks(options: {}, callback: Callback): void; - pruneNetworks(callback: Callback): void; + pruneNetworks(options: {}, callback: Callback): void; + pruneNetworks(callback: Callback): void; info(callback: Callback): void; From 5379903578190c82cd55b5a0bd8a37ff025a4873 Mon Sep 17 00:00:00 2001 From: Nicolas Laplante Date: Thu, 30 Mar 2017 19:46:10 -0400 Subject: [PATCH 7/8] fix dtslint errors --- types/dockerode/index.d.ts | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/types/dockerode/index.d.ts b/types/dockerode/index.d.ts index 0acb68662b..743b516a88 100644 --- a/types/dockerode/index.d.ts +++ b/types/dockerode/index.d.ts @@ -590,19 +590,19 @@ declare namespace Dockerode { } interface SecretVersion { - Index: number + Index: number; } interface ServiceSpec { - Name: string + Name: string; } interface SecretInfo { - ID: string, + ID: string; Version: SecretVersion; - CreatedAt: string, - UpdatedAt?: string, - Spec?: ServiceSpec + CreatedAt: string; + UpdatedAt?: string; + Spec?: ServiceSpec; } interface PluginInfo { @@ -647,7 +647,7 @@ declare namespace Dockerode { interface PluginInterfaceType { Prefix: string; Capability: string; - Version: string + Version: string; } interface PluginMount { @@ -657,7 +657,7 @@ declare namespace Dockerode { Source: string; Destination: string; Type: string; - Options: string[] + Options: string[]; } interface Linux { @@ -704,7 +704,6 @@ declare namespace Dockerode { interface PruneImagesInfo { ImagesDeleted: ImageRemoveInfo[]; SpaceReclaimed: number; - } interface PruneVolumesInfo { @@ -720,7 +719,6 @@ declare namespace Dockerode { interface PruneNetworksInfo { NetworksDeleted: string[]; } - } type Callback = (error?: any, result?: T) => void; From 7a83c0174e2e726bd64107d933b74948d5bd96df Mon Sep 17 00:00:00 2001 From: Nicolas Laplante Date: Thu, 30 Mar 2017 19:48:51 -0400 Subject: [PATCH 8/8] fix one missing dtslint error --- types/dockerode/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/dockerode/index.d.ts b/types/dockerode/index.d.ts index 743b516a88..2e834f0b3b 100644 --- a/types/dockerode/index.d.ts +++ b/types/dockerode/index.d.ts @@ -599,7 +599,7 @@ declare namespace Dockerode { interface SecretInfo { ID: string; - Version: SecretVersion; + Version: SecretVersion; CreatedAt: string; UpdatedAt?: string; Spec?: ServiceSpec;