daemontools 0.2.6 → 0.2.8

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: f5703423d017dfd15356942bfb9c15b1bf90a0066e0ee3cb44d6465c0028a926
4
- data.tar.gz: f7cb58a362f20b50c777a935b9468d7ca290b6d1f9c655321dc37d0b3103b069
3
+ metadata.gz: '088f99d7ee5b8816c0966f1a3d6f21e9877c27486ae41bd3b8b3673a8f6cb436'
4
+ data.tar.gz: 3feb328381a172969861003b8cd4a5915eb26725242f1ee14ca9d0617e3582cc
5
5
  SHA512:
6
- metadata.gz: 990027123b11e7049fe904a19ac9fe30ae0fdbd6823a61d3640d0e9506f95daec95d6d7fa09878ef18d8fcf89a1d5682aec99591eb35e6134a16a4901cdfd27c
7
- data.tar.gz: 5d668f9a9bcd887332110e549e738a29bbfcce6e696cf45c57fa27545d5d54a3d2f91116562cefdeb81dc26d349b423ae1fd69e4688a4a23caf1510d2a9343b0
6
+ metadata.gz: 4d8d8f56cf833668fedb16f7bac6d8df99ab0ffd001d0d13487b6859ed029a3ee2394514721bc8e967942f9cfe3d5a0f2acb888438af9216349878d8042e9c43
7
+ data.tar.gz: 4373911d28e58fe56120bafddcfb159f1df066eb4adcdcbe45f646c207fa991497e9354b1e64e1637eafed176042fc07ba861e3ea492b4727e5805dc08c57552
@@ -31,3 +31,7 @@ end
31
31
  service :service_new_2, :roles => [:new_role] do
32
32
  command1 "service_new_2 arg1"
33
33
  end
34
+
35
+ service :service4, :roles => [:role_renamed] do
36
+ command3 "script/service4 argument1"
37
+ end
@@ -35,3 +35,7 @@ end
35
35
  service :deleted_service_3, :roles => [:role_deleted] do
36
36
  command3 "script/deleted_service_3 argument1"
37
37
  end
38
+
39
+ service :service4, :roles => [:role_to_rename] do
40
+ command3 "script/service4 argument1"
41
+ end
@@ -6,8 +6,8 @@ module Daemontools
6
6
  true
7
7
  end
8
8
 
9
- def delete_services(service_names, role)
10
- find_services_by_name(service_names, role).map(&:first)
9
+ def delete_services(service_names)
10
+ service_names
11
11
  end
12
12
  end
13
13
  end
@@ -5,9 +5,7 @@ module Daemontools
5
5
  def remove_unused_services
6
6
  return if @deleted_services.empty?
7
7
 
8
- @deleted_services.map do |role, services|
9
- @previous_builder.delete_services(services, role)
10
- end
8
+ @previous_builder.delete_services(@deleted_services)
11
9
  end
12
10
  end
13
11
  end
@@ -72,9 +72,8 @@ module Daemontools
72
72
  @delete_command = cmd.empty? ? nil : cmd
73
73
  end
74
74
 
75
- def delete_services(service_names, role)
76
- services = find_services_by_name(service_names, role)
77
- services.each { |service| Daemontools.delete(service[0], @delete_command) }
75
+ def delete_services(services)
76
+ services.each { |service| Daemontools.delete(service, @delete_command) }
78
77
  end
79
78
 
80
79
  def find_services_by_name(service_names, role)
@@ -15,22 +15,21 @@ module Daemontools
15
15
  def remove_unused_services
16
16
  return if @deleted_services.empty?
17
17
 
18
- @deleted_services.each do |role, services|
19
- puts "Delete services #{services} for role #{role}"
20
- @previous_builder.delete_services(services, role)
21
- end
18
+ puts "Services for delete: #{@deleted_services.join(', ')}"
19
+ @previous_builder.delete_services(@deleted_services)
22
20
  end
23
21
 
24
22
  private
25
23
 
26
24
  def find_services_changes(old_services, new_services)
27
- @deleted_services = {}
28
- @roles.each do |role|
29
- old_role_services = (old_services[role] || []).map(&:first)
30
- new_role_services = (new_services[role] || []).map(&:first)
31
- services_for_del = old_role_services - new_role_services
32
- @deleted_services[role] = services_for_del unless services_for_del.empty?
33
- end
25
+ old_services_for_server = services_for_roles(old_services, @roles)
26
+ new_services_for_server = services_for_roles(new_services, @roles)
27
+ @deleted_services = old_services_for_server - new_services_for_server
28
+ end
29
+
30
+ # Extracting service names for roles from config
31
+ def services_for_roles(services, roles)
32
+ services.values_at(*roles).flatten(1).compact.map(&:first).compact.uniq
34
33
  end
35
34
  end
36
35
  end
@@ -1,3 +1,3 @@
1
1
  module Daemontools
2
- VERSION = "0.2.6"
2
+ VERSION = "0.2.8"
3
3
  end
data/lib/daemontools.rb CHANGED
@@ -121,6 +121,7 @@ module Daemontools
121
121
  def self.delete(name, rm_cmd = nil)
122
122
  return false unless exists?(name)
123
123
  stop(name)
124
+ sleep 0.3
124
125
  cmd = rm_cmd.nil? ? "sudo rm -rf #{@path} 2>&1" : "#{rm_cmd} #{@path}"
125
126
  r = `#{cmd}`
126
127
  raise r if $?.exitstatus != 0
@@ -14,18 +14,22 @@ RSpec.describe Daemontools::Remover, '#initialize' do
14
14
 
15
15
  remover = Daemontools::RemoverStub.new(roles, old_builder, new_builder)
16
16
  deleted = remover.deleted_services
17
- deleted_roles = %i[role_with_deleted role_with_modifies role_deleted]
17
+ deleted_services = %i[deleted_service_1 deleted_service_2 deleted_service_3]
18
18
 
19
19
  context 'Check roles where services were deleted' do
20
20
  it 'Number of roles for deleted services must be equal to length of deleted roles' do
21
- expect(deleted.keys.size).to eq deleted_roles.length
21
+ expect(deleted.size).to eq deleted_services.length
22
22
  end
23
23
 
24
- deleted.each_key do |role|
25
- it "Should contain #{role}" do
26
- expect(deleted_roles.include?(role)).to eq true
24
+ deleted.each do |service_name|
25
+ it "Should contain #{service_name}" do
26
+ expect(deleted_services.include?(service_name)).to eq true
27
27
  end
28
28
  end
29
+
30
+ it 'Include service from renamed role' do
31
+ expect(deleted_services.include?('service4')).to eq false
32
+ end
29
33
  end
30
34
 
31
35
  context 'Removing unused services' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: daemontools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.2.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - sh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-03 00:00:00.000000000 Z
11
+ date: 2022-11-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler