avm-eac_rails_base1 0.6.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a1c90d3dfb3e81da85980dc5791ad6940084b8cf31e0a15459e87809d2679a2e
4
- data.tar.gz: 7083e86a075897d6ada5d5327684c8b8ecdf864a304d08af80fb84582d862439
3
+ metadata.gz: 60cbf683d2eab977e42eff3944934a06e2ca88afff2e09b6abe2553188ea3b0d
4
+ data.tar.gz: 895f655aa46f4d0cdeffd2e52a04460b7edb82368b85756d76bef2024acc19e4
5
5
  SHA512:
6
- metadata.gz: 42ad1e1cf98bfe5d1cae9ee3de7cf9413bf0bcdf68dcb8c9d304277d1c3a66d68851c30a40d88bc974fa3b19724016f722a0d55266ec48f04c437bb47ad803e6
7
- data.tar.gz: 46679fdc666f604debb262b6e0c44b22dec64315166202f735ef1498ac9e79e23cadd98ed0de3d25a32778d6fffc10780c98267ac5593026810e51252aae38cc
6
+ metadata.gz: '0679994556c1e4e2ae00640183bb9dd086a32fcd60a4e5749a59030ed28d0e1172b6032194df3dd02691eab7173935dd04464ebd52ff8beda1aee15b20b5ef83'
7
+ data.tar.gz: a15d9f26f2f080918fe4190f343fd67abd7e5b1346af66d60dd1d03a25de2cc175b4687980eff22de2acc8a07a67e1309b721288499ee2dc11a1a2ea9bd3dce2
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_webapp_base0/instances/apache_host'
4
+
5
+ module Avm
6
+ module EacRailsBase1
7
+ module Instances
8
+ class ApacheHost < ::Avm::EacWebappBase0::Instances::ApacheHost
9
+ def document_root
10
+ "#{instance.read_entry(::Avm::Instances::EntryKeys::INSTALL_PATH)}/public"
11
+ end
12
+
13
+ def extra_content
14
+ 'PassengerEnabled On'
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module EacRailsBase1
7
+ module Instances
8
+ class SystemdUnit
9
+ module Service
10
+ def service_content
11
+ template.child('tasks_scheduler.service').apply(variables_source)
12
+ end
13
+
14
+ def service_exec_lines
15
+ service_exec_operations
16
+ .map { |k, v| "#{k}=#{tasks_scheduler_command_path} #{v}" }
17
+ .join("\n")
18
+ end
19
+
20
+ def service_path
21
+ ::Pathname.new('/etc/systemd/system').join(unit_name)
22
+ end
23
+
24
+ def service_link_path
25
+ ::Pathname.new('/etc/systemd/system/multi-user.target.wants').join(unit_name)
26
+ end
27
+
28
+ def verify_service
29
+ sudo_system!('systemd-analyze', 'verify', service_path)
30
+ end
31
+
32
+ private
33
+
34
+ def enable_service
35
+ systemctl('enable', unit_name)
36
+ end
37
+
38
+ def link_service
39
+ sudo_execute!('rm', '-f', service_link_path)
40
+ sudo_execute!('ln', '-s', service_path, service_link_path)
41
+ end
42
+
43
+ def reload_systemd
44
+ systemctl('daemon-reload')
45
+ end
46
+
47
+ # @return [Hash<String, String>]
48
+ def service_exec_operations
49
+ if exec_run?
50
+ { 'ExecStart' => 'run' }
51
+ else
52
+ { 'ExecStart' => 'start', 'ExecStop' => 'stop' }
53
+ end
54
+ end
55
+
56
+ def start_service
57
+ systemctl('start', unit_name)
58
+ end
59
+
60
+ def systemctl(*args)
61
+ sudo_system!('systemctl', *args)
62
+ end
63
+
64
+ def write_service
65
+ infom 'Writing service\'s unit file...'
66
+ platform_instance.file_sudo_write(service_path, service_content)
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module EacRailsBase1
7
+ module Instances
8
+ class SystemdUnit
9
+ module TasksSchedulerCommand
10
+ def tasks_scheduler_command_content
11
+ template.child('tasks_scheduler_command.sh').apply(variables_source)
12
+ end
13
+
14
+ def tasks_scheduler_command_path
15
+ "/opt/aux/#{instance.id}/tasks_scheduler.sh"
16
+ end
17
+
18
+ private
19
+
20
+ def write_tasks_scheduler_command
21
+ infom 'Writing tasks scheduler\'s command...'
22
+ sudo_execute!('mkdir', '-p', ::File.dirname(tasks_scheduler_command_path))
23
+ platform_instance.file_sudo_write(tasks_scheduler_command_path,
24
+ tasks_scheduler_command_content)
25
+ sudo_execute!('chmod', '+x', tasks_scheduler_command_path)
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/entries/jobs/base'
4
+ require 'avm/eac_ubuntu_base0/apache'
5
+ require 'eac_ruby_utils/core_ext'
6
+
7
+ module Avm
8
+ module EacRailsBase1
9
+ module Instances
10
+ class SystemdUnit
11
+ JOBS = %w[write_tasks_scheduler_command write_service link_service verify_service
12
+ reload_systemd enable_service start_service].freeze
13
+
14
+ include ::Avm::Entries::Jobs::Base
15
+ require_sub __FILE__, include_modules: true
16
+ delegate :platform_instance, to: :instance
17
+
18
+ enable_listable
19
+ lists.add_symbol :option, :exec_run, :restart
20
+
21
+ def description
22
+ "#{instance.id} Tasks Scheduler"
23
+ end
24
+
25
+ def exec_run?
26
+ options[OPTION_EXEC_RUN]
27
+ end
28
+
29
+ def option_list
30
+ self.class.lists.option
31
+ end
32
+
33
+ def restart
34
+ options[OPTION_RESTART]
35
+ end
36
+
37
+ def unit_name
38
+ "#{instance.id}_tasks_scheduler.service"
39
+ end
40
+
41
+ def user
42
+ instance.install_username
43
+ end
44
+
45
+ private
46
+
47
+ def sudo_execute!(*args)
48
+ platform_instance.host_env.command(['sudo'] + args).execute!
49
+ end
50
+
51
+ def sudo_system!(*args)
52
+ command_args = ['sudo'] + args
53
+ infom "Running \"#{::Shellwords.join(command_args)}\"..."
54
+ platform_instance.host_env.command(command_args).system!
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'avm/eac_rails_base1/systemd_unit'
3
+ require 'avm/eac_rails_base1/instances/systemd_unit'
4
4
  require 'eac_ruby_utils/core_ext'
5
5
 
6
6
  module Avm
@@ -31,9 +31,9 @@ module Avm
31
31
  private
32
32
 
33
33
  def systemd_unit_uncached
34
- ::Avm::EacRailsBase1::SystemdUnit.new(runner_context.call(:instance),
35
- restart: parsed.restart,
36
- exec_run: parsed.exec_run?)
34
+ ::Avm::EacRailsBase1::Instances::SystemdUnit.new(runner_context.call(:instance),
35
+ restart: parsed.restart,
36
+ exec_run: parsed.exec_run?)
37
37
  end
38
38
 
39
39
  def result_uncached
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacRailsBase1
5
- VERSION = '0.6.0'
5
+ VERSION = '0.7.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avm-eac_rails_base1
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Put here the authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-19 00:00:00.000000000 Z
11
+ date: 2022-09-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: avm
@@ -16,56 +16,56 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.41'
19
+ version: '0.45'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.41'
26
+ version: '0.45'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: avm-eac_ruby_base1
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.20'
33
+ version: '0.21'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.20'
40
+ version: '0.21'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: avm-eac_webapp_base0
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.6'
47
+ version: '0.9'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0.6'
54
+ version: '0.9'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: eac_ruby_utils
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0.102'
61
+ version: '0.104'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0.102'
68
+ version: '0.104'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: eac_ruby_gem_support
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -87,9 +87,12 @@ extensions: []
87
87
  extra_rdoc_files: []
88
88
  files:
89
89
  - lib/avm/eac_rails_base1.rb
90
- - lib/avm/eac_rails_base1/apache_host.rb
91
90
  - lib/avm/eac_rails_base1/instances.rb
91
+ - lib/avm/eac_rails_base1/instances/apache_host.rb
92
92
  - lib/avm/eac_rails_base1/instances/base.rb
93
+ - lib/avm/eac_rails_base1/instances/systemd_unit.rb
94
+ - lib/avm/eac_rails_base1/instances/systemd_unit/service.rb
95
+ - lib/avm/eac_rails_base1/instances/systemd_unit/tasks_scheduler_command.rb
93
96
  - lib/avm/eac_rails_base1/runner.rb
94
97
  - lib/avm/eac_rails_base1/runner/bundle.rb
95
98
  - lib/avm/eac_rails_base1/runner/code_runner.rb
@@ -102,12 +105,9 @@ files:
102
105
  - lib/avm/eac_rails_base1/runner_with/bundle.rb
103
106
  - lib/avm/eac_rails_base1/runner_with/rails_environment.rb
104
107
  - lib/avm/eac_rails_base1/sources/base.rb
105
- - lib/avm/eac_rails_base1/systemd_unit.rb
106
- - lib/avm/eac_rails_base1/systemd_unit/service.rb
107
- - lib/avm/eac_rails_base1/systemd_unit/tasks_scheduler_command.rb
108
108
  - lib/avm/eac_rails_base1/version.rb
109
- - template/avm/eac_rails_base1/systemd_unit/tasks_scheduler.service
110
- - template/avm/eac_rails_base1/systemd_unit/tasks_scheduler_command.sh
109
+ - template/avm/eac_rails_base1/instances/systemd_unit/tasks_scheduler.service
110
+ - template/avm/eac_rails_base1/instances/systemd_unit/tasks_scheduler_command.sh
111
111
  homepage:
112
112
  licenses: []
113
113
  metadata: {}
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/eac_webapp_base0/apache_host'
4
-
5
- module Avm
6
- module EacRailsBase1
7
- class ApacheHost < ::Avm::EacWebappBase0::ApacheHost
8
- def document_root
9
- "#{instance.read_entry(::Avm::Instances::EntryKeys::INSTALL_PATH)}/public"
10
- end
11
-
12
- def extra_content
13
- 'PassengerEnabled On'
14
- end
15
- end
16
- end
17
- end
@@ -1,70 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module Avm
6
- module EacRailsBase1
7
- class SystemdUnit
8
- module Service
9
- def service_content
10
- template.child('tasks_scheduler.service').apply(variables_source)
11
- end
12
-
13
- def service_exec_lines
14
- service_exec_operations
15
- .map { |k, v| "#{k}=#{tasks_scheduler_command_path} #{v}" }
16
- .join("\n")
17
- end
18
-
19
- def service_path
20
- ::Pathname.new('/etc/systemd/system').join(unit_name)
21
- end
22
-
23
- def service_link_path
24
- ::Pathname.new('/etc/systemd/system/multi-user.target.wants').join(unit_name)
25
- end
26
-
27
- def verify_service
28
- sudo_system!('systemd-analyze', 'verify', service_path)
29
- end
30
-
31
- private
32
-
33
- def enable_service
34
- systemctl('enable', unit_name)
35
- end
36
-
37
- def link_service
38
- sudo_execute!('rm', '-f', service_link_path)
39
- sudo_execute!('ln', '-s', service_path, service_link_path)
40
- end
41
-
42
- def reload_systemd
43
- systemctl('daemon-reload')
44
- end
45
-
46
- # @return [Hash<String, String>]
47
- def service_exec_operations
48
- if exec_run?
49
- { 'ExecStart' => 'run' }
50
- else
51
- { 'ExecStart' => 'start', 'ExecStop' => 'stop' }
52
- end
53
- end
54
-
55
- def start_service
56
- systemctl('start', unit_name)
57
- end
58
-
59
- def systemctl(*args)
60
- sudo_system!('systemctl', *args)
61
- end
62
-
63
- def write_service
64
- infom 'Writing service\'s unit file...'
65
- platform_instance.file_sudo_write(service_path, service_content)
66
- end
67
- end
68
- end
69
- end
70
- end
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module Avm
6
- module EacRailsBase1
7
- class SystemdUnit
8
- module TasksSchedulerCommand
9
- def tasks_scheduler_command_content
10
- template.child('tasks_scheduler_command.sh').apply(variables_source)
11
- end
12
-
13
- def tasks_scheduler_command_path
14
- "/opt/aux/#{instance.id}/tasks_scheduler.sh"
15
- end
16
-
17
- private
18
-
19
- def write_tasks_scheduler_command
20
- infom 'Writing tasks scheduler\'s command...'
21
- sudo_execute!('mkdir', '-p', ::File.dirname(tasks_scheduler_command_path))
22
- platform_instance.file_sudo_write(tasks_scheduler_command_path,
23
- tasks_scheduler_command_content)
24
- sudo_execute!('chmod', '+x', tasks_scheduler_command_path)
25
- end
26
- end
27
- end
28
- end
29
- end
@@ -1,57 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/jobs/base'
4
- require 'avm/eac_ubuntu_base0/apache'
5
- require 'eac_ruby_utils/core_ext'
6
-
7
- module Avm
8
- module EacRailsBase1
9
- class SystemdUnit
10
- JOBS = %w[write_tasks_scheduler_command write_service link_service verify_service
11
- reload_systemd enable_service start_service].freeze
12
-
13
- include ::Avm::Jobs::Base
14
- require_sub __FILE__, include_modules: true
15
- delegate :platform_instance, to: :instance
16
-
17
- enable_listable
18
- lists.add_symbol :option, :exec_run, :restart
19
-
20
- def description
21
- "#{instance.id} Tasks Scheduler"
22
- end
23
-
24
- def exec_run?
25
- options[OPTION_EXEC_RUN]
26
- end
27
-
28
- def option_list
29
- self.class.lists.option
30
- end
31
-
32
- def restart
33
- options[OPTION_RESTART]
34
- end
35
-
36
- def unit_name
37
- "#{instance.id}_tasks_scheduler.service"
38
- end
39
-
40
- def user
41
- instance.install_username
42
- end
43
-
44
- private
45
-
46
- def sudo_execute!(*args)
47
- platform_instance.host_env.command(['sudo'] + args).execute!
48
- end
49
-
50
- def sudo_system!(*args)
51
- command_args = ['sudo'] + args
52
- infom "Running \"#{::Shellwords.join(command_args)}\"..."
53
- platform_instance.host_env.command(command_args).system!
54
- end
55
- end
56
- end
57
- end