avm-tools 0.69.3 → 0.72.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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/lib/avm/data/instance/files_unit.rb +2 -1
  3. data/lib/avm/eac_rails_base0/apache_host.rb +1 -1
  4. data/lib/avm/eac_rails_base0/apache_path.rb +50 -0
  5. data/lib/avm/eac_rails_base0/deploy.rb +2 -1
  6. data/lib/avm/eac_rails_base0/instance.rb +2 -2
  7. data/lib/avm/eac_redmine_base0/deploy.rb +2 -2
  8. data/lib/avm/eac_redmine_base0/instance.rb +6 -5
  9. data/lib/avm/eac_ubuntu_base0/apache.rb +26 -0
  10. data/lib/avm/eac_ubuntu_base0/apache/resource.rb +59 -0
  11. data/lib/avm/eac_ubuntu_base0/docker_image.rb +14 -0
  12. data/lib/avm/eac_webapp_base0/apache_host.rb +2 -2
  13. data/lib/avm/eac_webapp_base0/deploy.rb +2 -2
  14. data/lib/avm/eac_webapp_base0/deploy/file_unit.rb +2 -1
  15. data/lib/avm/git/auto_commit_path.rb +4 -2
  16. data/lib/avm/instances/application.rb +4 -0
  17. data/lib/avm/instances/base.rb +2 -1
  18. data/lib/avm/instances/base/auto_values/access.rb +5 -4
  19. data/lib/avm/instances/base/auto_values/admin.rb +2 -2
  20. data/lib/avm/instances/base/auto_values/database.rb +1 -1
  21. data/lib/avm/instances/base/auto_values/filesystem.rb +8 -2
  22. data/lib/avm/instances/base/auto_values/ruby.rb +1 -1
  23. data/lib/avm/instances/base/auto_values/system.rb +2 -2
  24. data/lib/avm/instances/entries.rb +5 -8
  25. data/lib/avm/instances/entry.rb +53 -0
  26. data/lib/avm/instances/entry_keys.rb +39 -6
  27. data/lib/avm/patches/i18n.rb +1 -1
  28. data/lib/avm/patches/object/template.rb +1 -1
  29. data/lib/avm/rails/instance.rb +19 -0
  30. data/lib/avm/self.rb +0 -4
  31. data/lib/avm/self/instance.rb +1 -1
  32. data/lib/avm/self/root.rb +13 -0
  33. data/lib/avm/stereotypes/eac_wordpress_base0/apache_host.rb +1 -1
  34. data/lib/avm/tools/runner/eac_rails_base0.rb +7 -12
  35. data/lib/avm/tools/runner/eac_rails_base0/apache_path.rb +38 -0
  36. data/lib/avm/tools/runner/eac_rails_base0/rails_server.rb +41 -0
  37. data/lib/avm/tools/runner/git/deploy.rb +3 -1
  38. data/lib/avm/tools/runner/instance.rb +28 -0
  39. data/lib/avm/tools/runner/instance/info.rb +44 -0
  40. data/lib/avm/tools/version.rb +1 -1
  41. data/template/avm/eac_rails_base0/apache_path/default.conf +13 -0
  42. data/vendor/eac_cli/lib/eac_cli/runner.rb +1 -1
  43. data/vendor/eac_cli/lib/eac_cli/runner/context.rb +19 -2
  44. data/vendor/eac_cli/lib/eac_cli/version.rb +1 -1
  45. data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/gem.rb +2 -1
  46. data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/gem/command.rb +1 -1
  47. data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/multiple/decorated_gem.rb +10 -6
  48. data/vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/version.rb +1 -1
  49. data/vendor/eac_ruby_gems_utils/spec/{rubocop_check_spec.rb → code/rubocop_check_spec.rb} +0 -0
  50. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/ruby/command.rb +2 -1
  51. data/vendor/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
  52. metadata +15 -8
  53. data/lib/avm/instances/entries/entry_reader.rb +0 -45
  54. data/lib/avm/stereotypes/eac_ubuntu_base0/apache.rb +0 -27
  55. data/lib/avm/stereotypes/eac_ubuntu_base0/apache/site.rb +0 -61
  56. data/lib/avm/stereotypes/eac_ubuntu_base0/docker_image.rb +0 -16
  57. data/lib/avm/stereotypes/rails/instance.rb +0 -20
@@ -45,7 +45,7 @@ module EacCli
45
45
  module AfterClassMethods
46
46
  def create(*runner_context_args)
47
47
  r = new
48
- r.runner_context = ::EacCli::Runner::Context.new(*runner_context_args)
48
+ r.runner_context = ::EacCli::Runner::Context.new(r, *runner_context_args)
49
49
  r
50
50
  end
51
51
 
@@ -5,13 +5,30 @@ require 'eac_ruby_utils/core_ext'
5
5
  module EacCli
6
6
  module Runner
7
7
  class Context
8
- attr_reader :argv, :parent, :program_name
8
+ attr_reader :argv, :parent, :program_name, :runner
9
9
 
10
- def initialize(*context_args)
10
+ def initialize(runner, *context_args)
11
11
  options = context_args.extract_options!
12
12
  @argv = (context_args[0] || options.delete(:argv) || ARGV).dup.freeze
13
13
  @parent = context_args[1] || options.delete(:parent)
14
14
  @program_name = options.delete(:program_name)
15
+ @runner = runner
16
+ end
17
+
18
+ # Call a method in the runner or in one of it ancestors.
19
+ def call(method_name, *args)
20
+ return runner.send(method_name, *args) if runner.respond_to?(method_name)
21
+ return parent_call(method_name, *args) if parent.present?
22
+
23
+ raise ::NameError, "No method \"#{method_name}\" found in #{runner} or in its ancestors"
24
+ end
25
+
26
+ protected
27
+
28
+ def parent_call(method_name, *args)
29
+ return parent.context(method_name, *args) if parent.respond_to?(:context)
30
+
31
+ parent.runner_context.call(method_name, *args)
15
32
  end
16
33
  end
17
34
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacCli
4
- VERSION = '0.8.0'
4
+ VERSION = '0.9.0'
5
5
  end
@@ -11,8 +11,9 @@ module EacRubyGemsUtils
11
11
 
12
12
  GEMSPEC_EXTNAME = '.gemspec'
13
13
 
14
- common_constructor :root do
14
+ common_constructor :root, :host_env, default: [nil] do
15
15
  @root = ::Pathname.new(root).expand_path
16
+ self.host_env ||= ::EacRubyUtils::Envs.local
16
17
  end
17
18
 
18
19
  def to_s
@@ -11,7 +11,7 @@ module EacRubyGemsUtils
11
11
 
12
12
  def initialize(gem, command_args, extra_options = {})
13
13
  @gem = gem
14
- super(command_args, extra_options)
14
+ super(command_args, extra_options.merge(host_env: gem.host_env))
15
15
  end
16
16
 
17
17
  # Changes current directory to the gem's directory.
@@ -12,14 +12,12 @@ module EacRubyGemsUtils
12
12
  log('running "bundle install"...')
13
13
  return if bundle('install').execute.fetch(:exit_code).zero?
14
14
 
15
- if can_remove_gemfile_lock?
16
- log('"bundle install" failed, removing Gemfile.lock and trying again...')
17
- gemfile_lock_path.unlink if gemfile_lock_path.exist?
18
- bundle('install').execute!
19
- else
15
+ unless can_remove_gemfile_lock?
20
16
  raise '"bundle install" failed and the Gemfile.lock is part of gem' \
21
- '(Should be changed by developer)'
17
+ '(Should be changed by developer)'
22
18
  end
19
+
20
+ prepare_with_removable_gemfile_lock
23
21
  end
24
22
 
25
23
  def tests
@@ -33,6 +31,12 @@ module EacRubyGemsUtils
33
31
  infov self, message
34
32
  end
35
33
 
34
+ def prepare_with_removable_gemfile_lock
35
+ log('"bundle install" failed, removing Gemfile.lock and trying again...')
36
+ gemfile_lock_path.unlink if gemfile_lock_path.exist?
37
+ bundle('install').execute!
38
+ end
39
+
36
40
  def can_remove_gemfile_lock?
37
41
  !files.include?(gemfile_lock_path.relative_path_from(root))
38
42
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacRubyGemsUtils
4
- VERSION = '0.7.2'
4
+ VERSION = '0.8.0'
5
5
  end
@@ -8,7 +8,8 @@ module EacRubyUtils
8
8
  # A [EacRubyUtils::Envs::Command] which runs in a clean Ruby environment.
9
9
  class Command < ::EacRubyUtils::Envs::Command
10
10
  def initialize(bundle_args, extra_options = {})
11
- super(::EacRubyUtils::Envs.local, bundle_args, extra_options)
11
+ host_env = extra_options.delete(:host_env)
12
+ super(host_env || ::EacRubyUtils::Envs.local, bundle_args, extra_options)
12
13
  end
13
14
 
14
15
  %w[system execute].each do |method_prefix|
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacRubyUtils
4
- VERSION = '0.46.0'
4
+ VERSION = '0.47.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avm-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.69.3
4
+ version: 0.72.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esquilo Azul Company
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-04 00:00:00.000000000 Z
11
+ date: 2020-10-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aranha-parsers
@@ -291,12 +291,16 @@ files:
291
291
  - lib/avm/docker/registry.rb
292
292
  - lib/avm/docker/runner.rb
293
293
  - lib/avm/eac_rails_base0/apache_host.rb
294
+ - lib/avm/eac_rails_base0/apache_path.rb
294
295
  - lib/avm/eac_rails_base0/deploy.rb
295
296
  - lib/avm/eac_rails_base0/instance.rb
296
297
  - lib/avm/eac_redmine_base0/core_update.rb
297
298
  - lib/avm/eac_redmine_base0/data_unit.rb
298
299
  - lib/avm/eac_redmine_base0/deploy.rb
299
300
  - lib/avm/eac_redmine_base0/instance.rb
301
+ - lib/avm/eac_ubuntu_base0/apache.rb
302
+ - lib/avm/eac_ubuntu_base0/apache/resource.rb
303
+ - lib/avm/eac_ubuntu_base0/docker_image.rb
300
304
  - lib/avm/eac_webapp_base0/apache_host.rb
301
305
  - lib/avm/eac_webapp_base0/deploy.rb
302
306
  - lib/avm/eac_webapp_base0/deploy/appended_directories.rb
@@ -380,7 +384,7 @@ files:
380
384
  - lib/avm/instances/configuration/_rubocop.rb
381
385
  - lib/avm/instances/configuration/_tests.rb
382
386
  - lib/avm/instances/entries.rb
383
- - lib/avm/instances/entries/entry_reader.rb
387
+ - lib/avm/instances/entry.rb
384
388
  - lib/avm/instances/entry_keys.rb
385
389
  - lib/avm/launcher/context/instance_manager.rb
386
390
  - lib/avm/launcher/context/instance_manager/cached_instance.rb
@@ -421,6 +425,7 @@ files:
421
425
  - lib/avm/projects/stereotypes/ruby_gem/update.rb
422
426
  - lib/avm/projects/stereotypes/ruby_gem/version_bump.rb
423
427
  - lib/avm/rails.rb
428
+ - lib/avm/rails/instance.rb
424
429
  - lib/avm/rails/runners.rb
425
430
  - lib/avm/rails/runners/bundle.rb
426
431
  - lib/avm/rails/runners/runner.rb
@@ -436,13 +441,11 @@ files:
436
441
  - lib/avm/self/docker_image.rb
437
442
  - lib/avm/self/instance.rb
438
443
  - lib/avm/self/instance/entry_keys.rb
444
+ - lib/avm/self/root.rb
439
445
  - lib/avm/stereotypes.rb
440
446
  - lib/avm/stereotypes/eac_rails_base0.rb
441
447
  - lib/avm/stereotypes/eac_redmine_base0.rb
442
448
  - lib/avm/stereotypes/eac_ubuntu_base0.rb
443
- - lib/avm/stereotypes/eac_ubuntu_base0/apache.rb
444
- - lib/avm/stereotypes/eac_ubuntu_base0/apache/site.rb
445
- - lib/avm/stereotypes/eac_ubuntu_base0/docker_image.rb
446
449
  - lib/avm/stereotypes/eac_webapp_base0.rb
447
450
  - lib/avm/stereotypes/eac_wordpress_base0/apache_host.rb
448
451
  - lib/avm/stereotypes/eac_wordpress_base0/deploy.rb
@@ -452,15 +455,16 @@ files:
452
455
  - lib/avm/stereotypes/postgresql/instance/data_unit.rb
453
456
  - lib/avm/stereotypes/postgresql/instance_with.rb
454
457
  - lib/avm/stereotypes/rails.rb
455
- - lib/avm/stereotypes/rails/instance.rb
456
458
  - lib/avm/sync.rb
457
459
  - lib/avm/tools.rb
458
460
  - lib/avm/tools/runner.rb
459
461
  - lib/avm/tools/runner/eac_rails_base0.rb
460
462
  - lib/avm/tools/runner/eac_rails_base0/apache_host.rb
463
+ - lib/avm/tools/runner/eac_rails_base0/apache_path.rb
461
464
  - lib/avm/tools/runner/eac_rails_base0/bundle.rb
462
465
  - lib/avm/tools/runner/eac_rails_base0/data.rb
463
466
  - lib/avm/tools/runner/eac_rails_base0/deploy.rb
467
+ - lib/avm/tools/runner/eac_rails_base0/rails_server.rb
464
468
  - lib/avm/tools/runner/eac_rails_base0/runner.rb
465
469
  - lib/avm/tools/runner/eac_redmine_base0.rb
466
470
  - lib/avm/tools/runner/eac_redmine_base0/bundle.rb
@@ -489,6 +493,8 @@ files:
489
493
  - lib/avm/tools/runner/git/revisions_test.rb
490
494
  - lib/avm/tools/runner/git/subrepo.rb
491
495
  - lib/avm/tools/runner/git/subrepo/check.rb
496
+ - lib/avm/tools/runner/instance.rb
497
+ - lib/avm/tools/runner/instance/info.rb
492
498
  - lib/avm/tools/runner/launcher.rb
493
499
  - lib/avm/tools/runner/launcher/instances.rb
494
500
  - lib/avm/tools/runner/launcher/projects.rb
@@ -543,6 +549,7 @@ files:
543
549
  - lib/eac_launcher/vendor.rb
544
550
  - lib/eac_launcher/vendor/github.rb
545
551
  - lib/eac_launcher/version.rb
552
+ - template/avm/eac_rails_base0/apache_path/default.conf
546
553
  - template/avm/eac_rails_base0/deploy/config/database.yml.template
547
554
  - template/avm/eac_redmine_base0/deploy/config/install.sh.template
548
555
  - template/avm/eac_redmine_base0/deploy/config/secrets.yml
@@ -832,10 +839,10 @@ files:
832
839
  - vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/multiple/result.rb
833
840
  - vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/tests/rspec.rb
834
841
  - vendor/eac_ruby_gems_utils/lib/eac_ruby_gems_utils/version.rb
842
+ - vendor/eac_ruby_gems_utils/spec/code/rubocop_check_spec.rb
835
843
  - vendor/eac_ruby_gems_utils/spec/lib/eac_ruby_gems_utils/gem/version_file_spec.rb
836
844
  - vendor/eac_ruby_gems_utils/spec/lib/eac_ruby_gems_utils/gem/version_file_spec_files/a_version_file.rb
837
845
  - vendor/eac_ruby_gems_utils/spec/lib/eac_ruby_gems_utils/gem_spec.rb
838
- - vendor/eac_ruby_gems_utils/spec/rubocop_check_spec.rb
839
846
  - vendor/eac_ruby_gems_utils/spec/spec_helper.rb
840
847
  - vendor/eac_ruby_gems_utils/spec/support/mygem/Gemfile
841
848
  - vendor/eac_ruby_gems_utils/spec/support/mygem/Gemfile.lock
@@ -1,45 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module Avm
6
- module Instances
7
- module Entries
8
- class EntryReader
9
- common_constructor :parent, :suffix, :options
10
-
11
- def auto_value
12
- parent.respond_to?(auto_value_method, true) ? parent.send(auto_value_method) : nil
13
- end
14
-
15
- def auto_value_method
16
- "auto_#{suffix.to_s.gsub('.', '_')}"
17
- end
18
-
19
- def full_path
20
- (parent.path_prefix + suffix_as_array).join('.')
21
- end
22
-
23
- def optional_value
24
- read(required: false, noinput: true) || auto_value
25
- end
26
-
27
- def read(extra_options = {})
28
- ::Avm.configs.read_entry(full_path, options.merge(extra_options))
29
- end
30
-
31
- def suffix_as_array
32
- if suffix.is_a?(::Array)
33
- suffix.dup
34
- else
35
- ::EacRubyUtils::PathsHash.parse_entry_key(suffix.to_s)
36
- end
37
- end
38
-
39
- def value
40
- optional_value || read
41
- end
42
- end
43
- end
44
- end
45
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
- require 'eac_ruby_utils/require_sub'
5
- ::EacRubyUtils.require_sub(__FILE__)
6
-
7
- module Avm
8
- module Stereotypes
9
- module EacUbuntuBase0
10
- class Apache
11
- common_constructor :host_env
12
-
13
- def etc_root
14
- '/etc/apache2'
15
- end
16
-
17
- def service(command)
18
- host_env.command('sudo', 'service', 'apache2', command)
19
- end
20
-
21
- def site(name)
22
- ::Avm::Stereotypes::EacUbuntuBase0::Apache::Site.new(self, name)
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,61 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module Avm
6
- module Stereotypes
7
- module EacUbuntuBase0
8
- class Apache
9
- class Site
10
- common_constructor :apache, :name
11
-
12
- def available_path
13
- ::File.join(apache.etc_root, 'sites-available', "#{name}.conf")
14
- end
15
-
16
- def available?
17
- apache.host_env.file(available_path).exist?
18
- end
19
-
20
- def disable
21
- apache.host_env.command('sudo', 'a2dissite', name).execute!
22
- end
23
-
24
- def enable
25
- apache.host_env.command('sudo', 'a2ensite', name).execute!
26
- end
27
-
28
- def enabled_path
29
- ::File.join(apache.etc_root, 'sites-enabled', "#{name}.conf")
30
- end
31
-
32
- def enabled?
33
- apache.host_env.file(enabled_path).exist?
34
- end
35
-
36
- def remove
37
- remove_disabled
38
- remove_available
39
- end
40
-
41
- def remove_available
42
- raise 'Remove enabled before' if enabled?
43
-
44
- apache.host_env.command('sudo', 'rm', '-f', available_path).execute! if available?
45
- end
46
-
47
- def remove_disabled
48
- disable if enabled?
49
- apache.host_env.command('sudo', 'rm', '-f', enabled_path).execute! if enabled?
50
- end
51
-
52
- def write(content)
53
- ::EacRubyUtils::Envs.local.command('echo', content).pipe(
54
- apache.host_env.command('sudo', 'tee', available_path)
55
- ).execute!
56
- end
57
- end
58
- end
59
- end
60
- end
61
- end
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
- require 'avm/docker/image'
5
-
6
- module Avm
7
- module Stereotypes
8
- module EacUbuntuBase0
9
- class DockerImage < ::Avm::Docker::Image
10
- def stereotype_tag
11
- 'eac_ubuntu_base0'
12
- end
13
- end
14
- end
15
- end
16
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Avm
4
- module Stereotypes
5
- module Rails
6
- module Instance
7
- def bundle(*args)
8
- host_env.command('bundle', *args)
9
- .envvar('BUNDLE_GEMFILE', ::File.join(read_entry('fs_path'), 'Gemfile'))
10
- .envvar('RAILS_ENV', 'production')
11
- .chdir(read_entry('fs_path'))
12
- end
13
-
14
- def rake(*args)
15
- bundle('exec', 'rake', *args)
16
- end
17
- end
18
- end
19
- end
20
- end