avm-tools 0.60.0 → 0.62.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/lib/avm/cached_download.rb +39 -0
  3. data/lib/avm/eac_redmine_base0/core_update.rb +110 -0
  4. data/lib/avm/eac_redmine_base0/data_unit.rb +27 -0
  5. data/lib/avm/eac_redmine_base0/deploy.rb +36 -0
  6. data/lib/avm/eac_redmine_base0/instance.rb +38 -0
  7. data/lib/avm/launcher/context/instance_manager.rb +76 -0
  8. data/lib/avm/launcher/context/instance_manager/cached_instance.rb +37 -0
  9. data/lib/avm/launcher/context/instance_manager/cached_instances.rb +35 -0
  10. data/lib/avm/launcher/errors/base.rb +10 -0
  11. data/lib/avm/launcher/errors/non_project.rb +15 -0
  12. data/lib/avm/launcher/instances/base.rb +94 -0
  13. data/lib/avm/launcher/instances/base/cache.rb +43 -0
  14. data/lib/avm/projects/stereotypes/git_subrepo/warp.rb +5 -4
  15. data/lib/avm/stereotypes/eac_webapp_base0/runner/deploy.rb +3 -1
  16. data/lib/avm/sync.rb +94 -0
  17. data/lib/avm/tools/runner/eac_redmine_base0.rb +2 -2
  18. data/lib/avm/tools/runner/eac_redmine_base0/core_update.rb +67 -0
  19. data/lib/avm/tools/runner/eac_redmine_base0/deploy.rb +1 -1
  20. data/lib/avm/tools/runner/git/issue.rb +43 -4
  21. data/lib/avm/tools/version.rb +1 -1
  22. data/lib/eac_launcher/context.rb +2 -2
  23. data/lib/eac_launcher/context/instance_discovery.rb +2 -2
  24. data/lib/eac_launcher/git/base/dirty_files.rb +1 -1
  25. data/lib/eac_launcher/git/sub_warp_base.rb +3 -2
  26. data/lib/eac_launcher/instances.rb +2 -2
  27. data/lib/eac_launcher/instances/error.rb +7 -3
  28. data/lib/eac_launcher/paths/logical.rb +2 -2
  29. data/lib/eac_launcher/publish/base.rb +2 -2
  30. data/template/avm/{stereotypes/eac_redmine_base0 → eac_redmine_base0}/deploy/config/install.sh.template +0 -0
  31. data/template/avm/{stereotypes/eac_redmine_base0 → eac_redmine_base0}/deploy/config/secrets.yml +0 -0
  32. metadata +19 -11
  33. data/lib/avm/stereotypes/eac_redmine_base0/data_unit.rb +0 -29
  34. data/lib/avm/stereotypes/eac_redmine_base0/deploy.rb +0 -38
  35. data/lib/avm/stereotypes/eac_redmine_base0/instance.rb +0 -40
  36. data/lib/eac_launcher/context/instance_manager.rb +0 -95
  37. data/lib/eac_launcher/instances/base.rb +0 -91
  38. data/lib/eac_launcher/instances/base/cache.rb +0 -41
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module Tools
5
- VERSION = '0.60.0'
5
+ VERSION = '0.62.3'
6
6
  end
7
7
  end
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'active_support/core_ext/hash/indifferent_access'
4
+ require 'avm/launcher/context/instance_manager'
4
5
  require 'eac_ruby_utils/simple_cache'
5
6
  require 'eac_ruby_utils/console/speaker'
6
7
  require 'eac_launcher/context/instance_discovery'
7
- require 'eac_launcher/context/instance_manager'
8
8
  require 'eac_launcher/context/settings'
9
9
  require 'eac_launcher/paths/logical'
10
10
  require 'eac_launcher/project'
@@ -39,7 +39,7 @@ module EacLauncher
39
39
  @settings = ::EacLauncher::Context::Settings.new(build_option(:settings_file))
40
40
  @cache_root = build_option(:cache_root)
41
41
  @publish_options = { new: false, confirm: false, stereotype: nil }
42
- @instance_manager = ::EacLauncher::Context::InstanceManager.new(self)
42
+ @instance_manager = ::Avm::Launcher::Context::InstanceManager.new(self)
43
43
  @recache = false
44
44
  end
45
45
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'ruby-progressbar'
4
- require 'eac_launcher/instances/base'
4
+ require 'avm/launcher/instances/base'
5
5
 
6
6
  module EacLauncher
7
7
  class Context
@@ -22,7 +22,7 @@ module EacLauncher
22
22
  update_progress_format(path)
23
23
  on_rescued_path_instances(path) do |r|
24
24
  if path.project?
25
- parent_instance = ::EacLauncher::Instances::Base.instanciate(path, parent_instance)
25
+ parent_instance = ::Avm::Launcher::Instances::Base.instanciate(path, parent_instance)
26
26
  r << path
27
27
  end
28
28
  children = path.children
@@ -6,7 +6,7 @@ module EacLauncher
6
6
  module Git
7
7
  class Base < ::EacLauncher::Paths::Real
8
8
  module DirtyFiles
9
- delegate :dirty, to: :eac_git
9
+ delegate :dirty?, to: :eac_git
10
10
 
11
11
  def dirty_files
12
12
  eac_git.dirty_files.map do |df|
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_launcher/instances/error'
3
+ require 'avm/projects/stereotype'
4
+ require 'avm/launcher/errors/base'
4
5
 
5
6
  module EacLauncher
6
7
  module Git
@@ -11,7 +12,7 @@ module EacLauncher
11
12
  r = find_parent_instance(instance.parent)
12
13
  return r if r
13
14
 
14
- ::EacLauncher::Instances::Error.new('Git parent not found')
15
+ ::EacLauncher::Instances::Errors::Base.new('Git parent not found')
15
16
  end
16
17
 
17
18
  def find_parent_instance(current)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_launcher/instances/base'
4
- require 'eac_launcher/instances/error'
3
+ require 'avm/launcher/errors/base'
4
+ require 'avm/launcher/instances/base'
5
5
  require 'eac_launcher/instances/runner_helper'
6
6
  require 'eac_launcher/instances/settings'
@@ -1,8 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module EacLauncher
4
- module Instances
5
- class Error < StandardError
3
+ module Avm
4
+ module Launcher
5
+ module Instances
6
+ module Errors
7
+ class Error < StandardError
8
+ end
9
+ end
6
10
  end
7
11
  end
8
12
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'avm/stereotypes'
3
+ require 'avm/projects/stereotypes'
4
4
  require 'eac_launcher/paths/real'
5
5
 
6
6
  module EacLauncher
@@ -68,7 +68,7 @@ module EacLauncher
68
68
  end
69
69
 
70
70
  def warped_uncached
71
- if is_a?(::EacLauncher::Instances::Base)
71
+ if is_a?(::Avm::Launcher::Instances::Base)
72
72
  stereotypes.each do |s|
73
73
  return s.warp_class.new(self) if s.warp_class
74
74
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_launcher/instances/error'
3
+ require 'avm/launcher/errors/base'
4
4
 
5
5
  module EacLauncher
6
6
  module Publish
@@ -35,7 +35,7 @@ module EacLauncher
35
35
 
36
36
  def check_with_rescue
37
37
  internal_check
38
- rescue ::EacLauncher::Instances::Error => e
38
+ rescue ::EacLauncher::Instances::Errors::Base => e
39
39
  ::EacLauncher::Publish::CheckResult.blocked("Error: #{e}")
40
40
  rescue ::EacLauncher::Git::Error => e
41
41
  ::EacLauncher::Publish::CheckResult.blocked("Git error: #{e}")
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.60.0
4
+ version: 0.62.3
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-07-26 00:00:00.000000000 Z
11
+ date: 2020-08-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aranha-parsers
@@ -274,6 +274,7 @@ files:
274
274
  - Gemfile
275
275
  - exe/avm
276
276
  - lib/avm.rb
277
+ - lib/avm/cached_download.rb
277
278
  - lib/avm/configs.rb
278
279
  - lib/avm/data.rb
279
280
  - lib/avm/data/instance.rb
@@ -289,6 +290,10 @@ files:
289
290
  - lib/avm/docker/image.rb
290
291
  - lib/avm/docker/registry.rb
291
292
  - lib/avm/docker/runner.rb
293
+ - lib/avm/eac_redmine_base0/core_update.rb
294
+ - lib/avm/eac_redmine_base0/data_unit.rb
295
+ - lib/avm/eac_redmine_base0/deploy.rb
296
+ - lib/avm/eac_redmine_base0/instance.rb
292
297
  - lib/avm/executables.rb
293
298
  - lib/avm/files.rb
294
299
  - lib/avm/files/formatter.rb
@@ -358,6 +363,13 @@ files:
358
363
  - lib/avm/instances/entries.rb
359
364
  - lib/avm/instances/entries/entry_reader.rb
360
365
  - lib/avm/instances/entry_keys.rb
366
+ - lib/avm/launcher/context/instance_manager.rb
367
+ - lib/avm/launcher/context/instance_manager/cached_instance.rb
368
+ - lib/avm/launcher/context/instance_manager/cached_instances.rb
369
+ - lib/avm/launcher/errors/base.rb
370
+ - lib/avm/launcher/errors/non_project.rb
371
+ - lib/avm/launcher/instances/base.rb
372
+ - lib/avm/launcher/instances/base/cache.rb
361
373
  - lib/avm/local_projects.rb
362
374
  - lib/avm/local_projects/instance.rb
363
375
  - lib/avm/local_projects/jobs/update.rb
@@ -405,9 +417,6 @@ files:
405
417
  - lib/avm/stereotypes/eac_rails_base0/deploy.rb
406
418
  - lib/avm/stereotypes/eac_rails_base0/instance.rb
407
419
  - lib/avm/stereotypes/eac_redmine_base0.rb
408
- - lib/avm/stereotypes/eac_redmine_base0/data_unit.rb
409
- - lib/avm/stereotypes/eac_redmine_base0/deploy.rb
410
- - lib/avm/stereotypes/eac_redmine_base0/instance.rb
411
420
  - lib/avm/stereotypes/eac_ubuntu_base0.rb
412
421
  - lib/avm/stereotypes/eac_ubuntu_base0/apache.rb
413
422
  - lib/avm/stereotypes/eac_ubuntu_base0/apache/site.rb
@@ -433,6 +442,7 @@ files:
433
442
  - lib/avm/stereotypes/postgresql/instance_with.rb
434
443
  - lib/avm/stereotypes/rails.rb
435
444
  - lib/avm/stereotypes/rails/instance.rb
445
+ - lib/avm/sync.rb
436
446
  - lib/avm/tools.rb
437
447
  - lib/avm/tools/runner.rb
438
448
  - lib/avm/tools/runner/eac_rails_base0.rb
@@ -443,6 +453,7 @@ files:
443
453
  - lib/avm/tools/runner/eac_rails_base0/runner.rb
444
454
  - lib/avm/tools/runner/eac_redmine_base0.rb
445
455
  - lib/avm/tools/runner/eac_redmine_base0/bundle.rb
456
+ - lib/avm/tools/runner/eac_redmine_base0/core_update.rb
446
457
  - lib/avm/tools/runner/eac_redmine_base0/data.rb
447
458
  - lib/avm/tools/runner/eac_redmine_base0/data/dump.rb
448
459
  - lib/avm/tools/runner/eac_redmine_base0/deploy.rb
@@ -483,7 +494,6 @@ files:
483
494
  - lib/eac_launcher.rb
484
495
  - lib/eac_launcher/context.rb
485
496
  - lib/eac_launcher/context/instance_discovery.rb
486
- - lib/eac_launcher/context/instance_manager.rb
487
497
  - lib/eac_launcher/context/settings.rb
488
498
  - lib/eac_launcher/git.rb
489
499
  - lib/eac_launcher/git/base.rb
@@ -499,8 +509,6 @@ files:
499
509
  - lib/eac_launcher/git/sub_warp_base.rb
500
510
  - lib/eac_launcher/git/warp_base.rb
501
511
  - lib/eac_launcher/instances.rb
502
- - lib/eac_launcher/instances/base.rb
503
- - lib/eac_launcher/instances/base/cache.rb
504
512
  - lib/eac_launcher/instances/error.rb
505
513
  - lib/eac_launcher/instances/runner_helper.rb
506
514
  - lib/eac_launcher/instances/settings.rb
@@ -518,6 +526,8 @@ files:
518
526
  - lib/eac_launcher/vendor.rb
519
527
  - lib/eac_launcher/vendor/github.rb
520
528
  - lib/eac_launcher/version.rb
529
+ - template/avm/eac_redmine_base0/deploy/config/install.sh.template
530
+ - template/avm/eac_redmine_base0/deploy/config/secrets.yml
521
531
  - template/avm/ruby/gems/generator/gemspec.template
522
532
  - template/avm/ruby/gems/generator/root_lib.template
523
533
  - template/avm/ruby/gems/generator/static/Gemfile
@@ -527,8 +537,6 @@ files:
527
537
  - template/avm/self/docker_image/Dockerfile
528
538
  - template/avm/self/docker_image/entrypoint.sh
529
539
  - template/avm/stereotypes/eac_rails_base0/deploy/config/database.yml.template
530
- - template/avm/stereotypes/eac_redmine_base0/deploy/config/install.sh.template
531
- - template/avm/stereotypes/eac_redmine_base0/deploy/config/secrets.yml
532
540
  - template/avm/stereotypes/eac_ubuntu_base0/docker_image/Dockerfile
533
541
  - template/avm/stereotypes/eac_webapp_base0/apache_host/no_ssl.conf
534
542
  - template/avm/stereotypes/eac_wordpress_base0/deploy/wp-config.php.template
@@ -966,7 +974,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
966
974
  - !ruby/object:Gem::Version
967
975
  version: '0'
968
976
  requirements: []
969
- rubygems_version: 3.0.6
977
+ rubygems_version: 3.0.8
970
978
  signing_key:
971
979
  specification_version: 4
972
980
  summary: Tools for AVM.
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/data/instance/unit'
4
- require 'eac_ruby_utils/core_ext'
5
- require 'open-uri'
6
-
7
- module Avm
8
- module Stereotypes
9
- module EacRedmineBase0
10
- class DataUnit < ::Avm::Data::Instance::Unit
11
- common_constructor :instance
12
-
13
- EXTENSION = '.tar'
14
-
15
- def do_dump(data_path)
16
- ::File.open(data_path, 'wb') do |file|
17
- file << URI.parse(export_url).read
18
- end
19
- end
20
-
21
- def export_url
22
- uri = ::Addressable::URI.parse(instance.read_entry('web.url')) + '/backup/export'
23
- uri.query_values = { key: instance.read_entry('admin.api_key') }
24
- uri.to_s
25
- end
26
- end
27
- end
28
- end
29
- end
@@ -1,38 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/stereotypes/eac_webapp_base0/deploy'
4
- require 'eac_ruby_utils/ruby'
5
-
6
- module Avm
7
- module Stereotypes
8
- module EacRedmineBase0
9
- class Deploy < ::Avm::Stereotypes::EacWebappBase0::Deploy
10
- set_callback :assert_instance_branch, :after, :run_installer
11
-
12
- def run_installer
13
- infom 'Running installer'
14
- ::EacRubyUtils::Ruby.on_clean_environment do
15
- installer_command.system!
16
- end
17
- end
18
-
19
- def installer_command
20
- instance.host_env.command(installer_path, install_task)
21
- end
22
-
23
- def installer_path
24
- ::File.join(instance.read_entry(:fs_path), 'plugins', 'redmine_installer', 'installer',
25
- 'run.sh')
26
- end
27
-
28
- def install_task
29
- if instance.read_entry_optional('web.path').present?
30
- 'redmine_as_apache_path'
31
- else
32
- 'redmine_as_apache_base'
33
- end
34
- end
35
- end
36
- end
37
- end
38
- end
@@ -1,40 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/stereotypes/eac_redmine_base0/data_unit'
4
- require 'avm/stereotypes/eac_ubuntu_base0/docker_image'
5
- require 'avm/stereotypes/eac_webapp_base0/instance'
6
- require 'avm/stereotypes/rails/instance'
7
-
8
- module Avm
9
- module Stereotypes
10
- module EacRedmineBase0
11
- class Instance < ::Avm::Stereotypes::EacWebappBase0::Instance
12
- include ::Avm::Stereotypes::Rails::Instance
13
-
14
- FILES_UNITS = { files: 'files' }.freeze
15
-
16
- def docker_image_class
17
- ::Avm::Stereotypes::EacUbuntuBase0::DockerImage
18
- end
19
-
20
- def docker_run_arguments
21
- [
22
- '--volume', "#{read_entry(:fs_path)}:/home/myuser/eac_redmine_base0",
23
- '--publish', "#{read_entry(:ssh_port)}:22",
24
- '--publish', "#{read_entry(:http_port)}:80",
25
- '--publish', "#{read_entry(:https_port)}:443"
26
- ]
27
- end
28
-
29
- def data_package
30
- @data_package ||= ::Avm::Data::Instance::Package.new(
31
- self,
32
- units: {
33
- all: ::Avm::Stereotypes::EacRedmineBase0::DataUnit.new(self)
34
- }
35
- )
36
- end
37
- end
38
- end
39
- end
40
- end
@@ -1,95 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_launcher/publish/check_result'
4
- require('yaml')
5
-
6
- module EacLauncher
7
- class Context
8
- class InstanceManager
9
- include ::EacRubyUtils::SimpleCache
10
-
11
- def initialize(context)
12
- @context = context
13
- end
14
-
15
- def publish_state_set(instance, stereotype_name, check_status)
16
- data = cached_instances_file_content_uncached
17
- data[instance.logical] ||= {}
18
- data[instance.logical][:publish_state] ||= {}
19
- data[instance.logical][:publish_state][stereotype_name] = check_status
20
- write_cache_file(data)
21
- end
22
-
23
- def pending_instances
24
- instances.select { |instance| pending_instance?(instance) }
25
- end
26
-
27
- private
28
-
29
- def instances_uncached
30
- (cached_instances || search_instances).select(&:included?)
31
- end
32
-
33
- def search_instances
34
- cache_instances(::EacLauncher::Context::InstanceDiscovery.new(@context).instances)
35
- end
36
-
37
- def cached_instances
38
- return nil if @context.recache
39
- return nil unless cached_instances_file_content
40
-
41
- CachedInstances.new(cached_instances_file_content).instances
42
- end
43
-
44
- def cached_instances_file_content_uncached
45
- r = YAML.load_file(cache_file_path)
46
- r.is_a?(::Hash) ? r : nil
47
- rescue Errno::ENOENT
48
- nil
49
- end
50
-
51
- def cache_instances(instances)
52
- write_cache_file(Hash[instances.map { |i| [i.logical, i.to_h] }])
53
- instances
54
- end
55
-
56
- def write_cache_file(data)
57
- ::File.write(cache_file_path, data.to_yaml)
58
- end
59
-
60
- def cache_file_path
61
- ::File.join(@context.cache_root, 'instances.yml')
62
- end
63
-
64
- def pending_instance?(instance)
65
- data = cached_instances_file_content
66
- return false unless data[instance.logical]
67
- return false unless data[instance.logical][:publish_state].is_a?(Hash)
68
-
69
- data[instance.logical][:publish_state].any? do |_k, v|
70
- ::EacLauncher::Publish::CheckResult.pending_status?(v)
71
- end
72
- end
73
-
74
- class CachedInstances
75
- def initialize(content)
76
- @content = content
77
- @instances = {}
78
- end
79
-
80
- def instances
81
- @content.keys.map { |k| by_logical_path(k) }
82
- end
83
-
84
- def by_logical_path(key)
85
- return @instances[key] if @instances.key?(key)
86
-
87
- h = @content[key]
88
- parent_instance = h[:parent] ? by_logical_path(h[:parent]) : nil
89
- path = ::EacLauncher::Paths::Logical.from_h(@context, h)
90
- @instances[key] = ::EacLauncher::Instances::Base.instanciate(path, parent_instance)
91
- end
92
- end
93
- end
94
- end
95
- end