vagrant-docker-networks-manager 1.1.0 → 1.2.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0bbb1f94ae726a439322fdc8f5b06c09ccb9bf103b15183c3438235416864f23
4
- data.tar.gz: '0397d0f42adb37ba0171b6970ced23ad4428058565c70730f78080b373eb188e'
3
+ metadata.gz: 1bb7e79a26a3aae176cb8d23a4d5507ca51dc644c08ea9ecedebc13e6b91c677
4
+ data.tar.gz: 15764b3049ef7f0fd778230aabd1f96889a27442d9f1b6b795080534f9ee8b61
5
5
  SHA512:
6
- metadata.gz: e2e7d7a8dc2fc42c7669e4290a858179d25e5fa0fd144156bad65e3565a5012b65b47a96ad8434272bfd39b3f7725e094e371b1bfa41c2221bf61f9bf94c0be9
7
- data.tar.gz: 163bf607c79aff1e02794752c7211e074cf06bc3b17fd27d48ef0d3d97914421d17dd2afadacb1c34d635a8e773aa886c2b761e320b0e1da1e39fc222032fac8
6
+ metadata.gz: e8b2753f7dc68ac58da775a569fbe442be35818df0622263cf481c924fb15a75ff6393dd94bdc61fc9496e53aa5ec62dd1efa33db5faa8a8e0fb31d68c92f94b
7
+ data.tar.gz: ccc4b9a876924552c151fddb6f783c1fab4d4c70fed3a1b528079b55b875664f46e59d2fc0239e06d85d2ccf91460c6234587291e3abd38ebbc7ff050f3d1c18
data/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.2.1](https://github.com/julienpoirou/vagrant-docker-networks-manager/compare/v1.2.0...v1.2.1) (2026-07-05)
4
+
5
+
6
+ ### Corrections 🐛
7
+
8
+ * Bump version to publish gemspec documentation_uri metadata ([82e12f2](https://github.com/julienpoirou/vagrant-docker-networks-manager/commit/82e12f28d4cf166823efd4b8a02e915eb904cfeb))
9
+
10
+ ## [1.2.0](https://github.com/julienpoirou/vagrant-docker-networks-manager/compare/v1.1.0...v1.2.0) (2026-07-05)
11
+
12
+
13
+ ### Fonctionnalités ✨
14
+
15
+ * Improve plugin quality and publish RubyDoc ([25f1767](https://github.com/julienpoirou/vagrant-docker-networks-manager/commit/25f17676c62a19c663664c3dbf4a9b97757d466c))
16
+
17
+
18
+ ### Corrections 🐛
19
+
20
+ * Stub container_network_mode in command specs to unbreak CI ([422491e](https://github.com/julienpoirou/vagrant-docker-networks-manager/commit/422491e699139292a1a2edac976d9fb93314f7c5))
21
+ * Wire the workflow_dispatch tag input and make Publish release-safe ([05a1d46](https://github.com/julienpoirou/vagrant-docker-networks-manager/commit/05a1d46f3c6dd3132e2a64dfde13dcab9a3310ca))
22
+
3
23
  ## [1.1.0](https://github.com/julienpoirou/vagrant-docker-networks-manager/compare/v1.0.7...v1.1.0) (2026-03-11)
4
24
 
5
25
 
@@ -1 +1 @@
1
- 1.1.0
1
+ 1.2.1
@@ -12,6 +12,7 @@ require_relative "version"
12
12
 
13
13
  module VagrantDockerNetworksManager
14
14
  class ActionUp
15
+ # Vagrant middleware entry point that ensures the configured Docker network exists.
15
16
  def initialize(app, _env); @app = app; end
16
17
 
17
18
  def call(env)
@@ -21,7 +22,7 @@ module VagrantDockerNetworksManager
21
22
  ui = env[:ui]
22
23
 
23
24
  unless Util.docker_available?
24
- UiHelpers.error(ui, "#{UiHelpers.e(:error)} #{I18n.t('errors.docker_unavailable')}")
25
+ UiHelpers.error(ui, "#{UiHelpers.e(:error)} #{I18n.t('vdnm.errors.docker_unavailable')}")
25
26
  return @app.call(env)
26
27
  end
27
28
 
@@ -31,15 +32,15 @@ module VagrantDockerNetworksManager
31
32
  if Util.docker_network_exists?(name)
32
33
  if owned_by_this_machine?(name, mid)
33
34
  write_marker(env, name, cfg)
34
- UiHelpers.say(ui, "#{UiHelpers.e(:success)} #{I18n.t('messages.network_exists_adopted', name: name)}")
35
+ UiHelpers.say(ui, "#{UiHelpers.e(:success)} #{I18n.t('vdnm.messages.network_exists_adopted', name: name)}")
35
36
  else
36
- UiHelpers.say(ui, "#{UiHelpers.e(:info)} #{I18n.t('messages.network_exists', name: name)}")
37
+ UiHelpers.say(ui, "#{UiHelpers.e(:info)} #{I18n.t('vdnm.messages.network_exists', name: name)}")
37
38
  end
38
39
  else
39
40
  subnet_label = cfg.network_subnet || "-"
40
41
 
41
42
  if cfg.network_subnet && !VagrantDockerNetworksManager::Util.valid_subnet?(cfg.network_subnet)
42
- UiHelpers.error(ui, "#{UiHelpers.e(:error)} #{I18n.t('errors.invalid_subnet')}")
43
+ UiHelpers.error(ui, "#{UiHelpers.e(:error)} #{I18n.t('vdnm.errors.invalid_subnet')}")
43
44
  return @app.call(env)
44
45
  end
45
46
 
@@ -48,19 +49,20 @@ module VagrantDockerNetworksManager
48
49
  cfg.network_subnet,
49
50
  ignore_network: name
50
51
  )
51
- UiHelpers.error(ui, "#{UiHelpers.e(:error)} #{I18n.t('errors.subnet_in_use')}")
52
+ UiHelpers.error(ui, "#{UiHelpers.e(:error)} #{I18n.t('vdnm.errors.subnet_in_use')}")
52
53
  return @app.call(env)
53
54
  end
54
55
 
55
- UiHelpers.say(ui, "#{UiHelpers.e(:ongoing)} #{I18n.t('log.create_network', name: name, subnet: subnet_label)}")
56
+ UiHelpers.say(ui,
57
+ "#{UiHelpers.e(:ongoing)} #{I18n.t('vdnm.log.create_network', name: name, subnet: subnet_label)}")
56
58
  builder = NetworkBuilder.new(cfg, machine_id: mid)
57
59
  args = builder.build_create_command_args
58
60
  if Util.sh!(*args)
59
61
  write_marker(env, name, cfg)
60
- UiHelpers.say(ui, "#{UiHelpers.e(:success)} #{I18n.t('log.ok')}")
62
+ UiHelpers.say(ui, "#{UiHelpers.e(:success)} #{I18n.t('vdnm.log.ok')}")
61
63
  else
62
64
  rendered = args.shelljoin
63
- UiHelpers.error(ui, "#{UiHelpers.e(:error)} #{I18n.t('messages.create_failed', cmd: rendered)}")
65
+ UiHelpers.error(ui, "#{UiHelpers.e(:error)} #{I18n.t('vdnm.messages.create_failed', cmd: rendered)}")
64
66
  end
65
67
  end
66
68
 
@@ -70,6 +72,8 @@ module VagrantDockerNetworksManager
70
72
  private
71
73
 
72
74
  def write_marker(env, name, cfg)
75
+ # The marker is a local fallback ownership record; Docker labels remain
76
+ # the cross-process/source-of-truth check when the network still exists.
73
77
  m_id = env[:machine].id
74
78
  dir = env[:machine].data_dir.join("docker-networks")
75
79
  FileUtils.mkdir_p(dir)
@@ -103,6 +107,7 @@ module VagrantDockerNetworksManager
103
107
  end
104
108
 
105
109
  class ActionDestroy
110
+ # Vagrant middleware entry point that removes owned Docker networks on destroy.
106
111
  def initialize(app, _env); @app = app; end
107
112
 
108
113
  def call(env)
@@ -112,7 +117,7 @@ module VagrantDockerNetworksManager
112
117
  ui = env[:ui]
113
118
 
114
119
  unless Util.docker_available?
115
- UiHelpers.error(ui, "#{UiHelpers.e(:error)} #{I18n.t('errors.docker_unavailable')}")
120
+ UiHelpers.error(ui, "#{UiHelpers.e(:error)} #{I18n.t('vdnm.errors.docker_unavailable')}")
116
121
  return @app.call(env)
117
122
  end
118
123
 
@@ -125,7 +130,7 @@ module VagrantDockerNetworksManager
125
130
  end
126
131
 
127
132
  if created_by_this_machine?(env, name) || owned_by_this_machine?(name, mid)
128
- UiHelpers.say(ui, "#{UiHelpers.e(:broom)} #{I18n.t('messages.remove_network', name: name)}")
133
+ UiHelpers.say(ui, "#{UiHelpers.e(:broom)} #{I18n.t('vdnm.messages.remove_network', name: name)}")
129
134
 
130
135
  if Util.docker_network_exists?(name)
131
136
  out, _e, st = Open3.capture3("docker", "network", "inspect", name)
@@ -134,10 +139,10 @@ module VagrantDockerNetworksManager
134
139
  info = JSON.parse(out).first
135
140
  (info["Containers"] || {}).values.each do |c|
136
141
  cn = c["Name"]
137
- UiHelpers.say(ui, "#{UiHelpers.e(:ongoing)} #{I18n.t('log.disconnect_container', name: cn)}")
142
+ UiHelpers.say(ui, "#{UiHelpers.e(:ongoing)} #{I18n.t('vdnm.log.disconnect_container', name: cn)}")
138
143
  Util.sh!("network", "disconnect", "--force", name, cn)
139
144
  if ENV["VDNM_DESTROY_WITH_CONTAINERS"] == "1"
140
- UiHelpers.say(ui, "#{UiHelpers.e(:ongoing)} #{I18n.t('log.remove_container', name: cn)}")
145
+ UiHelpers.say(ui, "#{UiHelpers.e(:ongoing)} #{I18n.t('vdnm.log.remove_container', name: cn)}")
141
146
  Util.sh!("rm", "-f", cn)
142
147
  end
143
148
  end
@@ -148,16 +153,16 @@ module VagrantDockerNetworksManager
148
153
 
149
154
  if Util.sh!("network", "rm", name)
150
155
  delete_marker(env, name)
151
- UiHelpers.say(ui, "#{UiHelpers.e(:success)} #{I18n.t('log.ok')}")
156
+ UiHelpers.say(ui, "#{UiHelpers.e(:success)} #{I18n.t('vdnm.log.ok')}")
152
157
  else
153
- UiHelpers.warn(ui, "#{UiHelpers.e(:warning)} #{I18n.t('errors.remove_failed')}")
158
+ UiHelpers.warn(ui, "#{UiHelpers.e(:warning)} #{I18n.t('vdnm.errors.remove_failed')}")
154
159
  end
155
160
  else
156
161
  delete_marker(env, name)
157
- UiHelpers.say(ui, "#{UiHelpers.e(:info)} #{I18n.t('messages.nothing_to_do')}")
162
+ UiHelpers.say(ui, "#{UiHelpers.e(:info)} #{I18n.t('vdnm.messages.nothing_to_do')}")
158
163
  end
159
164
  else
160
- UiHelpers.say(ui, "#{UiHelpers.e(:broom)} #{I18n.t('messages.nothing_to_do')}")
165
+ UiHelpers.say(ui, "#{UiHelpers.e(:broom)} #{I18n.t('vdnm.messages.nothing_to_do')}")
161
166
  end
162
167
 
163
168
  @app.call(env)
@@ -170,6 +175,8 @@ module VagrantDockerNetworksManager
170
175
  end
171
176
 
172
177
  def created_by_this_machine?(env, name)
178
+ # Trust the marker only for this machine id to avoid removing a network
179
+ # created or adopted by another Vagrant environment.
173
180
  marker = marker_path(env, name)
174
181
  return false unless File.exist?(marker)
175
182
  j = JSON.parse(File.read(marker)) rescue {}