vagrant-docker-networks-manager 1.0.7 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -0
- data/README.md +2 -4
- data/lib/vagrant-docker-networks-manager/VERSION +1 -1
- data/lib/vagrant-docker-networks-manager/action.rb +22 -36
- data/lib/vagrant-docker-networks-manager/command.rb +420 -394
- data/lib/vagrant-docker-networks-manager/config.rb +5 -1
- data/lib/vagrant-docker-networks-manager/helpers.rb +48 -8
- data/lib/vagrant-docker-networks-manager/util.rb +12 -22
- data/lib/vagrant-docker-networks-manager/version.rb +7 -5
- data/locales/en.yml +1 -0
- data/locales/fr.yml +1 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0bbb1f94ae726a439322fdc8f5b06c09ccb9bf103b15183c3438235416864f23
|
|
4
|
+
data.tar.gz: '0397d0f42adb37ba0171b6970ced23ad4428058565c70730f78080b373eb188e'
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e2e7d7a8dc2fc42c7669e4290a858179d25e5fa0fd144156bad65e3565a5012b65b47a96ad8434272bfd39b3f7725e094e371b1bfa41c2221bf61f9bf94c0be9
|
|
7
|
+
data.tar.gz: 163bf607c79aff1e02794752c7211e074cf06bc3b17fd27d48ef0d3d97914421d17dd2afadacb1c34d635a8e773aa886c2b761e320b0e1da1e39fc222032fac8
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.1.0](https://github.com/julienpoirou/vagrant-docker-networks-manager/compare/v1.0.7...v1.1.0) (2026-03-11)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Fonctionnalités ✨
|
|
7
|
+
|
|
8
|
+
* **i18n:** Add connect_container log message in en/fr ([0608f9e](https://github.com/julienpoirou/vagrant-docker-networks-manager/commit/0608f9eead6942a97f738e5343918a5efc6a3c86))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Corrections 🐛
|
|
12
|
+
|
|
13
|
+
* **error:** Replace bare rescue with rescue StandardError throughout ([5db1d12](https://github.com/julienpoirou/vagrant-docker-networks-manager/commit/5db1d1268ca63a624f2e2c4fc2c4e1f6cbfb5d29))
|
|
14
|
+
|
|
3
15
|
## [1.0.7](https://github.com/julienpoirou/vagrant-docker-networks-manager/compare/v1.0.6...v1.0.7) (2025-08-18)
|
|
4
16
|
|
|
5
17
|
|
data/README.md
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
[](LICENSE.md)
|
|
8
8
|
[](https://www.conventionalcommits.org)
|
|
9
9
|
[](https://renovatebot.com)
|
|
10
|
+
[](https://rubygems.org/gems/vagrant-docker-networks-manager)
|
|
10
11
|
|
|
11
12
|
Vagrant plugin to **manage Docker networks** with labeled ownership, safe lifecycle hooks, JSON output, and conflict-aware validation.
|
|
12
13
|
|
|
@@ -280,10 +281,7 @@ Emojis can be disabled with `--no-emoji`.
|
|
|
280
281
|
|
|
281
282
|
## Permissions & OS notes
|
|
282
283
|
|
|
283
|
-
|
|
284
|
-
- **Windows**: the plugin uses **PowerShell elevation** (`Start-Process -Verb RunAs`) when needed to append or rewrite the hosts file.
|
|
285
|
-
|
|
286
|
-
> If your shell is already elevated (root/Admin), no prompts appear.
|
|
284
|
+
This plugin only calls `docker` CLI commands — no elevated privileges are required by the plugin itself. However, the Docker daemon must be reachable by the current user (e.g. the user must be in the `docker` group on Linux, or Docker Desktop must be running on macOS/Windows).
|
|
287
285
|
|
|
288
286
|
---
|
|
289
287
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
1.0
|
|
1
|
+
1.1.0
|
|
@@ -17,10 +17,11 @@ module VagrantDockerNetworksManager
|
|
|
17
17
|
def call(env)
|
|
18
18
|
UiHelpers.setup_i18n!
|
|
19
19
|
cfg = env[:machine].config.docker_network
|
|
20
|
-
|
|
20
|
+
UiHelpers.setup_locale_from_config!(cfg)
|
|
21
|
+
ui = env[:ui]
|
|
21
22
|
|
|
22
23
|
unless Util.docker_available?
|
|
23
|
-
|
|
24
|
+
UiHelpers.error(ui, "#{UiHelpers.e(:error)} #{I18n.t('errors.docker_unavailable')}")
|
|
24
25
|
return @app.call(env)
|
|
25
26
|
end
|
|
26
27
|
|
|
@@ -30,15 +31,15 @@ module VagrantDockerNetworksManager
|
|
|
30
31
|
if Util.docker_network_exists?(name)
|
|
31
32
|
if owned_by_this_machine?(name, mid)
|
|
32
33
|
write_marker(env, name, cfg)
|
|
33
|
-
|
|
34
|
+
UiHelpers.say(ui, "#{UiHelpers.e(:success)} #{I18n.t('messages.network_exists_adopted', name: name)}")
|
|
34
35
|
else
|
|
35
|
-
|
|
36
|
+
UiHelpers.say(ui, "#{UiHelpers.e(:info)} #{I18n.t('messages.network_exists', name: name)}")
|
|
36
37
|
end
|
|
37
38
|
else
|
|
38
39
|
subnet_label = cfg.network_subnet || "-"
|
|
39
40
|
|
|
40
41
|
if cfg.network_subnet && !VagrantDockerNetworksManager::Util.valid_subnet?(cfg.network_subnet)
|
|
41
|
-
|
|
42
|
+
UiHelpers.error(ui, "#{UiHelpers.e(:error)} #{I18n.t('errors.invalid_subnet')}")
|
|
42
43
|
return @app.call(env)
|
|
43
44
|
end
|
|
44
45
|
|
|
@@ -47,19 +48,19 @@ module VagrantDockerNetworksManager
|
|
|
47
48
|
cfg.network_subnet,
|
|
48
49
|
ignore_network: name
|
|
49
50
|
)
|
|
50
|
-
|
|
51
|
+
UiHelpers.error(ui, "#{UiHelpers.e(:error)} #{I18n.t('errors.subnet_in_use')}")
|
|
51
52
|
return @app.call(env)
|
|
52
53
|
end
|
|
53
54
|
|
|
54
|
-
|
|
55
|
+
UiHelpers.say(ui, "#{UiHelpers.e(:ongoing)} #{I18n.t('log.create_network', name: name, subnet: subnet_label)}")
|
|
55
56
|
builder = NetworkBuilder.new(cfg, machine_id: mid)
|
|
56
57
|
args = builder.build_create_command_args
|
|
57
58
|
if Util.sh!(*args)
|
|
58
59
|
write_marker(env, name, cfg)
|
|
59
|
-
|
|
60
|
+
UiHelpers.say(ui, "#{UiHelpers.e(:success)} #{I18n.t('log.ok')}")
|
|
60
61
|
else
|
|
61
62
|
rendered = args.shelljoin
|
|
62
|
-
|
|
63
|
+
UiHelpers.error(ui, "#{UiHelpers.e(:error)} #{I18n.t('messages.create_failed', cmd: rendered)}")
|
|
63
64
|
end
|
|
64
65
|
end
|
|
65
66
|
|
|
@@ -68,14 +69,6 @@ module VagrantDockerNetworksManager
|
|
|
68
69
|
|
|
69
70
|
private
|
|
70
71
|
|
|
71
|
-
def set_locale!(cfg)
|
|
72
|
-
lang = cfg.locale || ENV["VDNM_LANG"]
|
|
73
|
-
return unless lang
|
|
74
|
-
UiHelpers.set_locale!(lang)
|
|
75
|
-
rescue UiHelpers::UnsupportedLocaleError
|
|
76
|
-
UiHelpers.set_locale!("en")
|
|
77
|
-
end
|
|
78
|
-
|
|
79
72
|
def write_marker(env, name, cfg)
|
|
80
73
|
m_id = env[:machine].id
|
|
81
74
|
dir = env[:machine].data_dir.join("docker-networks")
|
|
@@ -99,7 +92,7 @@ module VagrantDockerNetworksManager
|
|
|
99
92
|
}
|
|
100
93
|
File.write(marker, JSON.pretty_generate(payload))
|
|
101
94
|
rescue => e
|
|
102
|
-
env[:ui]
|
|
95
|
+
UiHelpers.warn(env[:ui], "marker write failed for '#{name}': #{e.message}")
|
|
103
96
|
end
|
|
104
97
|
|
|
105
98
|
def owned_by_this_machine?(name, machine_id)
|
|
@@ -115,10 +108,11 @@ module VagrantDockerNetworksManager
|
|
|
115
108
|
def call(env)
|
|
116
109
|
UiHelpers.setup_i18n!
|
|
117
110
|
cfg = env[:machine].config.docker_network
|
|
118
|
-
|
|
111
|
+
UiHelpers.setup_locale_from_config!(cfg)
|
|
112
|
+
ui = env[:ui]
|
|
119
113
|
|
|
120
114
|
unless Util.docker_available?
|
|
121
|
-
|
|
115
|
+
UiHelpers.error(ui, "#{UiHelpers.e(:error)} #{I18n.t('errors.docker_unavailable')}")
|
|
122
116
|
return @app.call(env)
|
|
123
117
|
end
|
|
124
118
|
|
|
@@ -131,7 +125,7 @@ module VagrantDockerNetworksManager
|
|
|
131
125
|
end
|
|
132
126
|
|
|
133
127
|
if created_by_this_machine?(env, name) || owned_by_this_machine?(name, mid)
|
|
134
|
-
|
|
128
|
+
UiHelpers.say(ui, "#{UiHelpers.e(:broom)} #{I18n.t('messages.remove_network', name: name)}")
|
|
135
129
|
|
|
136
130
|
if Util.docker_network_exists?(name)
|
|
137
131
|
out, _e, st = Open3.capture3("docker", "network", "inspect", name)
|
|
@@ -140,30 +134,30 @@ module VagrantDockerNetworksManager
|
|
|
140
134
|
info = JSON.parse(out).first
|
|
141
135
|
(info["Containers"] || {}).values.each do |c|
|
|
142
136
|
cn = c["Name"]
|
|
143
|
-
|
|
137
|
+
UiHelpers.say(ui, "#{UiHelpers.e(:ongoing)} #{I18n.t('log.disconnect_container', name: cn)}")
|
|
144
138
|
Util.sh!("network", "disconnect", "--force", name, cn)
|
|
145
139
|
if ENV["VDNM_DESTROY_WITH_CONTAINERS"] == "1"
|
|
146
|
-
|
|
140
|
+
UiHelpers.say(ui, "#{UiHelpers.e(:ongoing)} #{I18n.t('log.remove_container', name: cn)}")
|
|
147
141
|
Util.sh!("rm", "-f", cn)
|
|
148
142
|
end
|
|
149
143
|
end
|
|
150
144
|
rescue => e
|
|
151
|
-
|
|
145
|
+
UiHelpers.warn(ui, "failed to parse containers for '#{name}': #{e.message}")
|
|
152
146
|
end
|
|
153
147
|
end
|
|
154
148
|
|
|
155
149
|
if Util.sh!("network", "rm", name)
|
|
156
150
|
delete_marker(env, name)
|
|
157
|
-
|
|
151
|
+
UiHelpers.say(ui, "#{UiHelpers.e(:success)} #{I18n.t('log.ok')}")
|
|
158
152
|
else
|
|
159
|
-
|
|
153
|
+
UiHelpers.warn(ui, "#{UiHelpers.e(:warning)} #{I18n.t('errors.remove_failed')}")
|
|
160
154
|
end
|
|
161
155
|
else
|
|
162
156
|
delete_marker(env, name)
|
|
163
|
-
|
|
157
|
+
UiHelpers.say(ui, "#{UiHelpers.e(:info)} #{I18n.t('messages.nothing_to_do')}")
|
|
164
158
|
end
|
|
165
159
|
else
|
|
166
|
-
|
|
160
|
+
UiHelpers.say(ui, "#{UiHelpers.e(:broom)} #{I18n.t('messages.nothing_to_do')}")
|
|
167
161
|
end
|
|
168
162
|
|
|
169
163
|
@app.call(env)
|
|
@@ -171,14 +165,6 @@ module VagrantDockerNetworksManager
|
|
|
171
165
|
|
|
172
166
|
private
|
|
173
167
|
|
|
174
|
-
def set_locale!(cfg)
|
|
175
|
-
lang = cfg.locale || ENV["VDNM_LANG"]
|
|
176
|
-
return unless lang
|
|
177
|
-
UiHelpers.set_locale!(lang)
|
|
178
|
-
rescue UiHelpers::UnsupportedLocaleError
|
|
179
|
-
UiHelpers.set_locale!("en")
|
|
180
|
-
end
|
|
181
|
-
|
|
182
168
|
def marker_path(env, name)
|
|
183
169
|
env[:machine].data_dir.join("docker-networks", "#{name}.json")
|
|
184
170
|
end
|