avm-eac_rails_base1 0.6.0 → 0.7.1

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: 84854e10d4ae4915469b65a563b5579d086d935a989423a373e58a3d49173adb
4
+ data.tar.gz: a58c7ab22468e0f964594443f35136fd71c5096f93071cd3b361b9ec13a4396f
5
5
  SHA512:
6
- metadata.gz: 42ad1e1cf98bfe5d1cae9ee3de7cf9413bf0bcdf68dcb8c9d304277d1c3a66d68851c30a40d88bc974fa3b19724016f722a0d55266ec48f04c437bb47ad803e6
7
- data.tar.gz: 46679fdc666f604debb262b6e0c44b22dec64315166202f735ef1498ac9e79e23cadd98ed0de3d25a32778d6fffc10780c98267ac5593026810e51252aae38cc
6
+ metadata.gz: 6b84460b7913ee8a90af0a279b550e5e8118fbd16d0af80e1c238b31aac5f8c6431269316948ef7ebe81c834b27b5bf4457fe47d332494d1610b68259eb00322
7
+ data.tar.gz: 412f16d894b91b4de55744313abe50a3114af5965334fe31e4791003d8b8e49121fa0b8e20b30ff976a3a71e84ad5f2a1e5aaf17092edfd7e394021205d23394
@@ -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.1'
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.1
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-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: avm
@@ -16,56 +16,74 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.41'
19
+ version: '0.57'
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.57'
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.27'
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 0.27.1
34
37
  type: :runtime
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
37
40
  requirements:
38
41
  - - "~>"
39
42
  - !ruby/object:Gem::Version
40
- version: '0.20'
43
+ version: '0.27'
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 0.27.1
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: avm-eac_webapp_base0
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
51
  - - "~>"
46
52
  - !ruby/object:Gem::Version
47
- version: '0.6'
53
+ version: '0.12'
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 0.12.3
48
57
  type: :runtime
49
58
  prerelease: false
50
59
  version_requirements: !ruby/object:Gem::Requirement
51
60
  requirements:
52
61
  - - "~>"
53
62
  - !ruby/object:Gem::Version
54
- version: '0.6'
63
+ version: '0.12'
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: 0.12.3
55
67
  - !ruby/object:Gem::Dependency
56
68
  name: eac_ruby_utils
57
69
  requirement: !ruby/object:Gem::Requirement
58
70
  requirements:
59
71
  - - "~>"
60
72
  - !ruby/object:Gem::Version
61
- version: '0.102'
73
+ version: '0.107'
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: 0.107.1
62
77
  type: :runtime
63
78
  prerelease: false
64
79
  version_requirements: !ruby/object:Gem::Requirement
65
80
  requirements:
66
81
  - - "~>"
67
82
  - !ruby/object:Gem::Version
68
- version: '0.102'
83
+ version: '0.107'
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: 0.107.1
69
87
  - !ruby/object:Gem::Dependency
70
88
  name: eac_ruby_gem_support
71
89
  requirement: !ruby/object:Gem::Requirement
@@ -87,9 +105,12 @@ extensions: []
87
105
  extra_rdoc_files: []
88
106
  files:
89
107
  - lib/avm/eac_rails_base1.rb
90
- - lib/avm/eac_rails_base1/apache_host.rb
91
108
  - lib/avm/eac_rails_base1/instances.rb
109
+ - lib/avm/eac_rails_base1/instances/apache_host.rb
92
110
  - lib/avm/eac_rails_base1/instances/base.rb
111
+ - lib/avm/eac_rails_base1/instances/systemd_unit.rb
112
+ - lib/avm/eac_rails_base1/instances/systemd_unit/service.rb
113
+ - lib/avm/eac_rails_base1/instances/systemd_unit/tasks_scheduler_command.rb
93
114
  - lib/avm/eac_rails_base1/runner.rb
94
115
  - lib/avm/eac_rails_base1/runner/bundle.rb
95
116
  - lib/avm/eac_rails_base1/runner/code_runner.rb
@@ -102,12 +123,9 @@ files:
102
123
  - lib/avm/eac_rails_base1/runner_with/bundle.rb
103
124
  - lib/avm/eac_rails_base1/runner_with/rails_environment.rb
104
125
  - 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
126
  - 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
127
+ - template/avm/eac_rails_base1/instances/systemd_unit/tasks_scheduler.service
128
+ - template/avm/eac_rails_base1/instances/systemd_unit/tasks_scheduler_command.sh
111
129
  homepage:
112
130
  licenses: []
113
131
  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