eac_tools 0.110.1 → 0.111.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.
Files changed (108) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +36 -30
  3. data/lib/eac_tools/version.rb +1 -1
  4. data/sub/avm-eac_rails_base1/avm-eac_rails_base1.gemspec +22 -0
  5. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/apache_base.rb +14 -0
  6. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/apache_host.rb +15 -0
  7. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/apache_path.rb +17 -0
  8. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/base/install.rb +25 -0
  9. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/base.rb +44 -0
  10. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/deploy.rb +20 -0
  11. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/processes/daemon.rb +36 -0
  12. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/processes/tasks_scheduler.rb +24 -0
  13. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/runners/bundle.rb +26 -0
  14. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/runners/code_runner.rb +25 -0
  15. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/runners/log.rb +43 -0
  16. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/runners/logs/clear.rb +25 -0
  17. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/runners/logs.rb +16 -0
  18. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/runners/rails_server.rb +31 -0
  19. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/runners/tasks_scheduler/systemd_unit.rb +45 -0
  20. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/runners/tasks_scheduler.rb +15 -0
  21. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/systemd_unit/service.rb +70 -0
  22. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/systemd_unit/tasks_scheduler_command.rb +29 -0
  23. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/instances/systemd_unit.rb +56 -0
  24. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/runner_with/bundle.rb +23 -0
  25. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/runner_with/rails_environment.rb +42 -0
  26. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/sources/base.rb +40 -0
  27. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1/version.rb +7 -0
  28. data/sub/avm-eac_rails_base1/lib/avm/eac_rails_base1.rb +12 -0
  29. data/sub/{eac_ruby_gem_support → avm-eac_rails_base1}/spec/spec_helper.rb +2 -1
  30. data/sub/avm-eac_rails_base1/template/avm/eac_rails_base1/instances/apache_path/extra_content.conf +6 -0
  31. data/sub/avm-eac_rails_base1/template/avm/eac_rails_base1/instances/systemd_unit/tasks_scheduler.service +12 -0
  32. data/sub/avm-eac_rails_base1/template/avm/eac_rails_base1/instances/systemd_unit/tasks_scheduler_command.sh +6 -0
  33. data/sub/avm-eac_redmine_base0/Gemfile +8 -0
  34. data/sub/avm-eac_redmine_base0/avm-eac_redmine_base0.gemspec +26 -0
  35. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/apache_host.rb +10 -0
  36. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/database.rb +27 -0
  37. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/files.rb +18 -0
  38. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/gitolite.rb +52 -0
  39. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/install.rb +43 -0
  40. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/nodejs.rb +19 -0
  41. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/web.rb +17 -0
  42. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base.rb +63 -0
  43. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/deploy.rb +16 -0
  44. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/docker_image.rb +110 -0
  45. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/entity_base.rb +31 -0
  46. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/project.rb +21 -0
  47. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/root.rb +17 -0
  48. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/wiki_page.rb +50 -0
  49. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api.rb +10 -0
  50. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/docker.rb +15 -0
  51. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project/wiki_page/read.rb +25 -0
  52. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project/wiki_page/write.rb +68 -0
  53. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project/wiki_page.rb +26 -0
  54. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project.rb +22 -0
  55. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project_rename.rb +53 -0
  56. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/base/default_settings.rb +40 -0
  57. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/base.rb +34 -0
  58. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/core_update.rb +125 -0
  59. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/runners/core_update.rb +61 -0
  60. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/runners/docker.rb +16 -0
  61. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/version.rb +7 -0
  62. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0.rb +16 -0
  63. data/sub/avm-eac_redmine_base0/locale/en.yml +6 -0
  64. data/sub/avm-eac_redmine_base0/locale/pt-BR.yml +6 -0
  65. data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/apache_host_spec.rb +19 -0
  66. data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/apache_host_spec_files/apache_host_spec_no_ssl_content.conf +11 -0
  67. data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/base/gitolite_spec.rb +24 -0
  68. data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/base/gitolite_spec_files/config.yml +10 -0
  69. data/sub/avm-eac_redmine_base0/spec/meta/rubocop_spec.rb +3 -0
  70. data/sub/avm-eac_redmine_base0/spec/spec_helper.rb +6 -0
  71. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/deploy/config/install.sh.template +46 -0
  72. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/deploy/config/secrets.yml +8 -0
  73. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/Dockerfile.template +37 -0
  74. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_host_dockerfile +8 -0
  75. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_http_virtualhost.conf.template +10 -0
  76. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_https_virtualhost.conf.template +16 -0
  77. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_path_dockerfile +5 -0
  78. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/start.sh.template +53 -0
  79. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/base/deploy.rb +1 -5
  80. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/base/install.rb +6 -1
  81. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/instances/deploy.rb +2 -4
  82. data/sub/avm-eac_webapp_base0/lib/avm/eac_webapp_base0/version.rb +1 -1
  83. metadata +85 -52
  84. data/sub/eac_ruby_gem_support/eac_ruby_gem_support.gemspec +0 -25
  85. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/helpers/filesystem.rb +0 -73
  86. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/helpers/utils.rb +0 -22
  87. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/setup.rb +0 -51
  88. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/shared_examples/source_target_fixtures.rb +0 -73
  89. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/shared_examples/spec_paths.rb +0 -11
  90. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/source_target_fixtures_controller.rb +0 -29
  91. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/spec_paths_controller.rb +0 -27
  92. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/rspec/specs/rubocop.rb +0 -33
  93. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/source_target_fixtures/source_target_file.rb +0 -17
  94. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/source_target_fixtures.rb +0 -72
  95. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support/version.rb +0 -5
  96. data/sub/eac_ruby_gem_support/lib/eac_ruby_gem_support.rb +0 -14
  97. data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/rspec/helpers/filesystem_spec.rb +0 -30
  98. data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/rspec/shared_examples/source_target_fixtures_spec.rb +0 -11
  99. data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/rspec/shared_examples/source_target_fixtures_spec_files/one.source.yaml +0 -2
  100. data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/rspec/shared_examples/source_target_fixtures_spec_files/one.target.yaml +0 -2
  101. data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/rspec/shared_examples/spec_paths_spec.rb +0 -17
  102. data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/source_target_fixtures_spec.rb +0 -25
  103. data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/source_target_fixtures_spec_files/stub1.source.txt +0 -1
  104. data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/source_target_fixtures_spec_files/stub1.target.html +0 -1
  105. data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/source_target_fixtures_spec_files/stub2.source.html +0 -1
  106. data/sub/eac_ruby_gem_support/spec/lib/eac_ruby_gem_support/source_target_fixtures_spec_files/stub3.target.yaml +0 -1
  107. /data/sub/{eac_ruby_gem_support → avm-eac_rails_base1}/Gemfile +0 -0
  108. /data/sub/{eac_ruby_gem_support/spec/meta/rubocop_check_spec.rb → avm-eac_rails_base1/spec/meta/rubocop_spec.rb} +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 11243ccf7d6a5f5071ebc0ee0c1b5f295cf60d6b18e6d0a0364efc5d58701420
4
- data.tar.gz: 9a76b306a2685a88031c5bfc285024f9ac3eca232962abdb9763292f14b80f75
3
+ metadata.gz: 88808b3b800978d68ec1b7879a85bb1c0105a9b6012791103e52efcadc65c07c
4
+ data.tar.gz: 1ca147a2e15e017483ebff700cda225cce8e321a03d693aa63c995f1ff70e634
5
5
  SHA512:
6
- metadata.gz: 0f2dc485a589bf95c8a096965a54109ef998e1c455790c0664d2c4778304813a2945c612473225e13f584cad54fc2b7849b4e32b9be4ae5249ded8d02ddf1677
7
- data.tar.gz: 96f7b282b03016c0e5db29354fa75b9f3a14d25b1faf85343bd5a3870498cd60af18fb68467a7e4ab0f3ed78da81ae18efd56ece5d7a1fba04594256da46a900
6
+ metadata.gz: 819a825248e6bd8254dfcd3b3a3801909bcd3b47762796266c6024da58d64b5cfbdd9ad3ecc351b2f0bf24b33fe2c9ea934aec9eae9e559b1fd2a07b337081bb
7
+ data.tar.gz: aea121cfd3e227fe9ad1d91663ed7741779ea4c9fe9ad9d36f338f013a9463688905371128dce47a31cf558fe186deee97f38918ff73d179a6ad2217cfdc2fcf
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- eac_tools (0.110.1)
4
+ eac_tools (0.111.0)
5
5
  avm (~> 0.98, >= 0.98.4)
6
6
  avm-eac_asciidoctor_base0 (~> 0.26, >= 0.26.1)
7
7
  avm-eac_generic_base0 (~> 0.15, >= 0.15.2)
@@ -12,38 +12,48 @@ PATH
12
12
  avm-eac_postgresql_base0 (~> 0.6)
13
13
  avm-eac_python_base0 (~> 0.2, >= 0.2.2)
14
14
  avm-eac_rails_base0 (~> 0.11, >= 0.11.2)
15
- avm-eac_rails_base1 (~> 0.11, >= 0.11.2)
16
- avm-eac_redmine_base0 (~> 0.24, >= 0.24.1)
15
+ avm-eac_rails_base1 (~> 0.12)
16
+ avm-eac_redmine_base0 (~> 0.25)
17
17
  avm-eac_redmine_plugin_base0 (~> 0.5)
18
18
  avm-eac_ruby_base0 (~> 0.1)
19
19
  avm-eac_ruby_base1 (~> 0.39)
20
- avm-eac_webapp_base0 (~> 0.21, >= 0.21.5)
20
+ avm-eac_webapp_base0 (~> 0.22)
21
21
  avm-eac_wordpress_base0 (~> 0.3, >= 0.3.2)
22
22
  avm-git (~> 0.21, >= 0.21.2)
23
23
  avm-tools (~> 0.163, >= 0.163.6)
24
24
  eac_ruby_utils (~> 0.130)
25
25
 
26
26
  PATH
27
- remote: sub/avm-eac_webapp_base0
27
+ remote: sub/avm-eac_rails_base1
28
+ specs:
29
+ avm-eac_rails_base1 (0.12.0)
30
+ avm (~> 0.98, >= 0.98.4)
31
+ avm-eac_ruby_base1 (~> 0.39)
32
+ avm-eac_webapp_base0 (~> 0.22)
33
+ eac_ruby_utils (~> 0.130)
34
+
35
+ PATH
36
+ remote: sub/avm-eac_redmine_base0
28
37
  specs:
29
- avm-eac_webapp_base0 (0.21.5)
38
+ avm-eac_redmine_base0 (0.25.0)
30
39
  avm (~> 0.98, >= 0.98.4)
31
40
  avm-eac_generic_base0 (~> 0.15, >= 0.15.2)
32
- avm-eac_postgresql_base0 (~> 0.6)
41
+ avm-eac_rails_base1 (~> 0.12)
33
42
  avm-eac_ubuntu_base0 (~> 0.7)
43
+ eac_fs (~> 0.20)
44
+ eac_rest (~> 0.12)
34
45
  eac_ruby_utils (~> 0.130)
35
- htmlbeautifier (~> 1.4, >= 1.4.3)
36
46
 
37
47
  PATH
38
- remote: sub/eac_ruby_gem_support
48
+ remote: sub/avm-eac_webapp_base0
39
49
  specs:
40
- eac_ruby_gem_support (0.12.2)
50
+ avm-eac_webapp_base0 (0.22.0)
51
+ avm (~> 0.98, >= 0.98.4)
52
+ avm-eac_generic_base0 (~> 0.15, >= 0.15.2)
53
+ avm-eac_postgresql_base0 (~> 0.6)
54
+ avm-eac_ubuntu_base0 (~> 0.7)
41
55
  eac_ruby_utils (~> 0.130)
42
- rspec (~> 3.13, >= 3.13.2)
43
- rubocop (~> 1.85, >= 1.85.1)
44
- rubocop-rails (~> 2.34, >= 2.34.3)
45
- rubocop-rspec (~> 3.9)
46
- super_diff (~> 0.18)
56
+ htmlbeautifier (~> 1.4, >= 1.4.3)
47
57
 
48
58
  GEM
49
59
  remote: https://rubygems.org/
@@ -112,19 +122,6 @@ GEM
112
122
  avm-eac_rails_base0 (0.11.2)
113
123
  avm-eac_rails_base1 (~> 0.11, >= 0.11.2)
114
124
  eac_ruby_utils (~> 0.129, >= 0.129.1)
115
- avm-eac_rails_base1 (0.11.2)
116
- avm (~> 0.98, >= 0.98.4)
117
- avm-eac_ruby_base1 (~> 0.39)
118
- avm-eac_webapp_base0 (~> 0.21, >= 0.21.4)
119
- eac_ruby_utils (~> 0.129, >= 0.129.1)
120
- avm-eac_redmine_base0 (0.24.1)
121
- avm (~> 0.98, >= 0.98.4)
122
- avm-eac_generic_base0 (~> 0.15, >= 0.15.2)
123
- avm-eac_rails_base1 (~> 0.11, >= 0.11.1)
124
- avm-eac_ubuntu_base0 (~> 0.7)
125
- eac_fs (~> 0.20)
126
- eac_rest (~> 0.12)
127
- eac_ruby_utils (~> 0.129)
128
125
  avm-eac_redmine_plugin_base0 (0.5.0)
129
126
  avm-eac_ruby_base1 (~> 0.38, >= 0.38.1)
130
127
  eac_ruby_utils (~> 0.128, >= 0.128.6)
@@ -200,6 +197,13 @@ GEM
200
197
  eac_cli (~> 0.45)
201
198
  eac_fs (~> 0.20)
202
199
  eac_ruby_utils (~> 0.129)
200
+ eac_ruby_gem_support (0.12.2)
201
+ eac_ruby_utils (~> 0.130)
202
+ rspec (~> 3.13, >= 3.13.2)
203
+ rubocop (~> 1.85, >= 1.85.1)
204
+ rubocop-rails (~> 2.34, >= 2.34.3)
205
+ rubocop-rspec (~> 3.9)
206
+ super_diff (~> 0.18)
203
207
  eac_ruby_utils (0.130.0)
204
208
  activesupport (>= 4, < 7)
205
209
  addressable (~> 2.8, >= 2.8.8)
@@ -300,7 +304,7 @@ GEM
300
304
  rubocop-ast (>= 1.49.0, < 2.0)
301
305
  ruby-progressbar (~> 1.7)
302
306
  unicode-display_width (>= 2.4.0, < 4.0)
303
- rubocop-ast (1.49.0)
307
+ rubocop-ast (1.49.1)
304
308
  parser (>= 3.3.7.2)
305
309
  prism (~> 1.7)
306
310
  rubocop-rails (2.34.3)
@@ -343,8 +347,10 @@ PLATFORMS
343
347
  x86_64-linux-gnu
344
348
 
345
349
  DEPENDENCIES
350
+ avm-eac_rails_base1!
351
+ avm-eac_redmine_base0!
346
352
  avm-eac_webapp_base0!
347
- eac_ruby_gem_support (~> 0.12, >= 0.12.2, >= 0)!
353
+ eac_ruby_gem_support (~> 0.12, >= 0.12.2)
348
354
  eac_tools!
349
355
 
350
356
  BUNDLED WITH
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacTools
4
- VERSION = '0.110.1'
4
+ VERSION = '0.111.0'
5
5
  end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ $LOAD_PATH.push File.expand_path('lib', __dir__)
4
+
5
+ require 'avm/eac_rails_base1/version'
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = 'avm-eac_rails_base1'
9
+ s.version = Avm::EacRailsBase1::VERSION
10
+ s.authors = ['Put here the authors']
11
+ s.summary = 'Put here de description.'
12
+
13
+ s.files = Dir['{lib,template}/**/*']
14
+ s.required_ruby_version = '>= 2.7'
15
+
16
+ s.add_dependency 'avm', '~> 0.98', '>= 0.98.4'
17
+ s.add_dependency 'avm-eac_ruby_base1', '~> 0.39'
18
+ s.add_dependency 'avm-eac_webapp_base0', '~> 0.22'
19
+ s.add_dependency 'eac_ruby_utils', '~> 0.130'
20
+
21
+ s.add_development_dependency 'eac_ruby_gem_support', '~> 0.12', '>= 0.12.2'
22
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRailsBase1
5
+ module Instances
6
+ module ApacheBase
7
+ # @return [String]
8
+ def document_root
9
+ ::File.join(super, 'public')
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRailsBase1
5
+ module Instances
6
+ class ApacheHost < ::Avm::EacWebappBase0::Instances::ApacheHost
7
+ prepend ::Avm::EacRailsBase1::Instances::ApacheBase
8
+
9
+ def extra_content
10
+ 'PassengerEnabled On'
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRailsBase1
5
+ module Instances
6
+ class ApachePath < ::Avm::EacWebappBase0::Instances::ApachePath
7
+ prepend ::Avm::EacRailsBase1::Instances::ApacheBase
8
+
9
+ # @return [String]
10
+ def extra_content
11
+ ::Avm::EacRailsBase1::Instances::ApachePath.template.child('extra_content.conf')
12
+ .apply(variables_source)
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRailsBase1
5
+ module Instances
6
+ class Base < ::Avm::EacWebappBase0::Instances::Base
7
+ module Install
8
+ DEFAULT_INSTALL_PASSENGER_START_TIMEOUT = 300
9
+
10
+ common_concern do
11
+ uri_components_entries_values 'install', %w[passenger_start_timeout]
12
+ end
13
+
14
+ def install_passenger_start_timeout_default_value
15
+ DEFAULT_INSTALL_PASSENGER_START_TIMEOUT
16
+ end
17
+
18
+ def install_request_test_timeout_default_value
19
+ install_passenger_start_timeout
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRailsBase1
5
+ module Instances
6
+ class Base < ::Avm::EacWebappBase0::Instances::Base
7
+ include ::Avm::EacRubyBase1::Instances::Mixin
8
+
9
+ DEFAULT_RAILS_ENVIRONMENT = 'production'
10
+
11
+ def bundle(*args)
12
+ the_gem.bundle(*args).chdir_root.envvar('RAILS_ENV', DEFAULT_RAILS_ENVIRONMENT)
13
+ end
14
+
15
+ # @return [Avm::Instances::Data::Package]
16
+ def data_package_create
17
+ super.add_unit('database', database_unit)
18
+ end
19
+
20
+ # @return [Addressable::URI]
21
+ def gemfile_source
22
+ application.local_source.gemfile_source
23
+ end
24
+
25
+ # @return [Array<Avm::Instances::Process>]
26
+ def processes
27
+ super + [::Avm::EacRailsBase1::Instances::Processes::TasksScheduler.new(self)]
28
+ end
29
+
30
+ def rake(*args)
31
+ bundle('exec', 'rake', *args)
32
+ end
33
+
34
+ def the_gem
35
+ @the_gem ||= ::Avm::EacRubyBase1::Sources::Base.new(
36
+ ::File.join(read_entry('install.path'))
37
+ ).env_set(host_env)
38
+ end
39
+
40
+ require_sub __FILE__, include_modules: :prepend
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRailsBase1
5
+ module Instances
6
+ class Deploy < ::Avm::EacWebappBase0::Instances::Deploy
7
+ set_callback :write_on_target, :before do
8
+ check_rubygems_access
9
+ end
10
+
11
+ # @return [void]
12
+ # @raise [EacEnvs::Http::Error]
13
+ def check_rubygems_access
14
+ infom "Checkin access to gems provider (\"#{instance.gemfile_source}\")..."
15
+ ::EacEnvs::Http::Request.new.url(instance.gemfile_source).response.body_data_or_raise
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRailsBase1
5
+ module Instances
6
+ module Processes
7
+ class Daemon < ::Avm::Instances::Process
8
+ acts_as_abstract :command_name, :gem_name
9
+
10
+ # @return [Boolean]
11
+ def available?
12
+ instance.application.local_source.gemfile_lock_gem_version(gem_name).present?
13
+ end
14
+
15
+ def disable
16
+ daemon_command(:stop).system!
17
+ end
18
+
19
+ def enable
20
+ daemon_command(:start).system!
21
+ end
22
+
23
+ def enabled?
24
+ daemon_command(:status).execute.fetch(:exit_code).zero?
25
+ end
26
+
27
+ private
28
+
29
+ def daemon_command(action)
30
+ instance.bundle('exec', command_name, action)
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRailsBase1
5
+ module Instances
6
+ module Processes
7
+ class TasksScheduler < ::Avm::EacRailsBase1::Instances::Processes::Daemon
8
+ GEM_NAME = 'tasks_scheduler'
9
+ COMMAND_NAME = 'tasks_scheduler'
10
+
11
+ # @return [String]
12
+ def command_name
13
+ COMMAND_NAME
14
+ end
15
+
16
+ # @return [String]
17
+ def gem_name
18
+ GEM_NAME
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'shellwords'
4
+
5
+ module Avm
6
+ module EacRailsBase1
7
+ module Instances
8
+ module Runners
9
+ class Bundle
10
+ runner_with ::Avm::EacRailsBase1::RunnerWith::Bundle, :help do
11
+ desc 'Runs "bundle ...".'
12
+ pos_arg :'bundle-args', repeat: true, optional: true
13
+ end
14
+
15
+ def run
16
+ bundle_run
17
+ end
18
+
19
+ def bundle_args
20
+ parsed.bundle_args.reject { |arg| arg == '--' }
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRailsBase1
5
+ module Instances
6
+ module Runners
7
+ class CodeRunner
8
+ runner_with :help, ::Avm::EacRailsBase1::RunnerWith::Bundle do
9
+ desc 'Runs a Ruby code with "rails runner".'
10
+ pos_arg :code
11
+ end
12
+
13
+ def run
14
+ infov 'Environment', runner_context.call(:instance).host_env
15
+ bundle_run
16
+ end
17
+
18
+ def bundle_args
19
+ %w[exec rails runner] + [parsed.code]
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRailsBase1
5
+ module Instances
6
+ module Runners
7
+ class Log
8
+ runner_with :help, ::Avm::EacRailsBase1::RunnerWith::RailsEnvironment do
9
+ desc 'Read application\'s log.'
10
+ bool_opt '-f', '--follow', 'Output appended data as the log grows.'
11
+ end
12
+
13
+ def run
14
+ start_banner
15
+ tail_command.system
16
+ end
17
+
18
+ private
19
+
20
+ def log_path
21
+ ::File.join(rails_instance.read_entry('install.path'), 'log',
22
+ "#{rails_environment}.log")
23
+ end
24
+
25
+ def start_banner
26
+ infov 'Environment', rails_environment
27
+ infov 'Log path', log_path
28
+ end
29
+
30
+ def tail_command
31
+ rails_instance.host_env.command(*tail_command_args)
32
+ end
33
+
34
+ def tail_command_args
35
+ r = %w[tail]
36
+ r << '--follow' if parsed.follow?
37
+ r + [log_path]
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRailsBase1
5
+ module Instances
6
+ module Runners
7
+ class Logs
8
+ class Clear
9
+ runner_with :help, ::Avm::EacRailsBase1::RunnerWith::Bundle do
10
+ desc 'Clear logs.'
11
+ end
12
+
13
+ def run
14
+ bundle_run
15
+ end
16
+
17
+ def bundle_args
18
+ %w[exec rake log:clear]
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRailsBase1
5
+ module Instances
6
+ module Runners
7
+ class Logs
8
+ runner_with :help, :subcommands do
9
+ desc 'Manipule multiple application\'s logs.'
10
+ subcommands
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'shellwords'
4
+
5
+ module Avm
6
+ module EacRailsBase1
7
+ module Instances
8
+ module Runners
9
+ class RailsServer
10
+ DEFAULT_RAILS_ENVIRONMENT = 'development'
11
+ runner_with :help, ::Avm::EacRailsBase1::RunnerWith::Bundle do
12
+ desc 'Run the embbeded Rails web server.'
13
+ end
14
+
15
+ def run
16
+ infov 'Environment', rails_environment
17
+ infov 'Bundle args', ::Shellwords.join(bundle_args)
18
+ infov 'Result', bundle_command.system
19
+ end
20
+
21
+ protected
22
+
23
+ def bundle_args
24
+ ['exec', 'rails', 'server', '--port',
25
+ runner_context.call(:instance).read_entry(::Avm::Instances::EntryKeys::WEB_PORT)]
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRailsBase1
5
+ module Instances
6
+ module Runners
7
+ class TasksScheduler
8
+ class SystemdUnit
9
+ DEFAULT_RESTART = 'on-failure'
10
+
11
+ runner_with :help do
12
+ desc 'Configure Systemd unit for instace\'s tasks scheduler daemon (Reference: ' \
13
+ 'https://www.freedesktop.org/software/systemd/man/systemd.service.html).'
14
+ bool_opt '-e', '--exec-run', 'Run daemon with "run" instead of "start"/"stop".'
15
+ arg_opt '-r', '--restart', 'Value for systemd.service, Restart=.',
16
+ default: DEFAULT_RESTART
17
+ end
18
+
19
+ delegate :restart, to: :parsed
20
+
21
+ def run
22
+ if result.error?
23
+ fatal_error result.to_s
24
+ else
25
+ infov 'Result', result.label
26
+ end
27
+ end
28
+
29
+ private
30
+
31
+ def systemd_unit_uncached
32
+ ::Avm::EacRailsBase1::Instances::SystemdUnit.new(runner_context.call(:instance),
33
+ restart: parsed.restart,
34
+ exec_run: parsed.exec_run?)
35
+ end
36
+
37
+ def result_uncached
38
+ systemd_unit.run
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRailsBase1
5
+ module Instances
6
+ module Runners
7
+ class TasksScheduler
8
+ runner_with :help, :subcommands do
9
+ subcommands
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,70 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRailsBase1
5
+ module Instances
6
+ class SystemdUnit
7
+ module Service
8
+ def service_content
9
+ template.child('tasks_scheduler.service').apply(variables_source)
10
+ end
11
+
12
+ def service_exec_lines
13
+ service_exec_operations
14
+ .map { |k, v| "#{k}=#{tasks_scheduler_command_path} #{v}" }
15
+ .join("\n")
16
+ end
17
+
18
+ def service_path
19
+ ::Pathname.new('/etc/systemd/system').join(unit_name)
20
+ end
21
+
22
+ def service_link_path
23
+ ::Pathname.new('/etc/systemd/system/multi-user.target.wants').join(unit_name)
24
+ end
25
+
26
+ def verify_service
27
+ sudo_system!('systemd-analyze', 'verify', service_path)
28
+ end
29
+
30
+ private
31
+
32
+ def enable_service
33
+ systemctl('enable', unit_name)
34
+ end
35
+
36
+ def link_service
37
+ sudo_execute!('rm', '-f', service_link_path)
38
+ sudo_execute!('ln', '-s', service_path, service_link_path)
39
+ end
40
+
41
+ def reload_systemd
42
+ systemctl('daemon-reload')
43
+ end
44
+
45
+ # @return [Hash<String, String>]
46
+ def service_exec_operations
47
+ if exec_run?
48
+ { 'ExecStart' => 'run' }
49
+ else
50
+ { 'ExecStart' => 'start', 'ExecStop' => 'stop' }
51
+ end
52
+ end
53
+
54
+ def start_service
55
+ systemctl('start', unit_name)
56
+ end
57
+
58
+ def systemctl(*args)
59
+ sudo_system!('systemctl', *args)
60
+ end
61
+
62
+ def write_service
63
+ infom 'Writing service\'s unit file...'
64
+ platform_instance.file_sudo_write(service_path, service_content)
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end