avm-eac_redmine_base0 0.1.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.
- checksums.yaml +7 -0
 - data/lib/avm/eac_redmine_base0.rb +9 -0
 - data/lib/avm/eac_redmine_base0/apache_host.rb +10 -0
 - data/lib/avm/eac_redmine_base0/core_update.rb +110 -0
 - data/lib/avm/eac_redmine_base0/data_unit.rb +55 -0
 - data/lib/avm/eac_redmine_base0/deploy.rb +36 -0
 - data/lib/avm/eac_redmine_base0/instance.rb +37 -0
 - data/lib/avm/eac_redmine_base0/instances/docker_image.rb +55 -0
 - data/lib/avm/eac_redmine_base0/patches/object/template.rb +7 -0
 - data/lib/avm/eac_redmine_base0/version.rb +7 -0
 - metadata +92 -0
 
    
        checksums.yaml
    ADDED
    
    | 
         @@ -0,0 +1,7 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ---
         
     | 
| 
      
 2 
     | 
    
         
            +
            SHA256:
         
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 96cb101bbbfb3397e390b6120b126b5aab0f04abc3e3ebced5518162bd32f5da
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 53cca61ba5273402ea1e1de68c1fdb1c797cb54e859046477ef7bcd1a27ede07
         
     | 
| 
      
 5 
     | 
    
         
            +
            SHA512:
         
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 0f8b7648564e59e10cc2d02b21f712298dcc6ab766a3e075b50183c3cc8adb17b46fa2b6ac71dcad0df58c244b6ec7ab7f968f95b06154928cd2632c541d89fe
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 83007b7a9f97b31a3b1670beb29879baa3f9cbba693289ae15502d9f0a3d96380fba7cd570becbe26e985112d4d4f2ba6859a91f309384da68d9c25d15b006b9
         
     | 
| 
         @@ -0,0 +1,110 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'avm/eac_redmine_base0/core_update'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'avm/cached_download'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require 'avm/sync'
         
     | 
| 
      
 6 
     | 
    
         
            +
            require 'eac_ruby_utils/core_ext'
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            module Avm
         
     | 
| 
      
 9 
     | 
    
         
            +
              module EacRedmineBase0
         
     | 
| 
      
 10 
     | 
    
         
            +
                class CoreUpdate
         
     | 
| 
      
 11 
     | 
    
         
            +
                  enable_speaker
         
     | 
| 
      
 12 
     | 
    
         
            +
                  enable_simple_cache
         
     | 
| 
      
 13 
     | 
    
         
            +
                  common_constructor :instance, :version, :url
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                  GITIGNORE_ADD = %w[/public/assets/**/* /config/install.sh /log/**/*].freeze
         
     | 
| 
      
 16 
     | 
    
         
            +
                  GITIGNORE_DEL = %w[/Gemfile.lock /plugins/* /public/themes/*].freeze
         
     | 
| 
      
 17 
     | 
    
         
            +
                  TARGET_KEEP = %w[/Gemfile.lock].freeze
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                  def run
         
     | 
| 
      
 20 
     | 
    
         
            +
                    ::EacRubyUtils::Fs::Temp.on_directory do |dir|
         
     | 
| 
      
 21 
     | 
    
         
            +
                      @tempdir = dir
         
     | 
| 
      
 22 
     | 
    
         
            +
                      assert_source_package
         
     | 
| 
      
 23 
     | 
    
         
            +
                      extract_package_to_tempdir
         
     | 
| 
      
 24 
     | 
    
         
            +
                      sync_content
         
     | 
| 
      
 25 
     | 
    
         
            +
                      change_git_ignore
         
     | 
| 
      
 26 
     | 
    
         
            +
                      validate_empty_dir
         
     | 
| 
      
 27 
     | 
    
         
            +
                    end
         
     | 
| 
      
 28 
     | 
    
         
            +
                    git_commit
         
     | 
| 
      
 29 
     | 
    
         
            +
                    success 'Done!'
         
     | 
| 
      
 30 
     | 
    
         
            +
                  end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                  def assert_source_package
         
     | 
| 
      
 33 
     | 
    
         
            +
                    infom 'Asserting source package...'
         
     | 
| 
      
 34 
     | 
    
         
            +
                    source_package.assert
         
     | 
| 
      
 35 
     | 
    
         
            +
                    infov 'Package cache path', source_package.path
         
     | 
| 
      
 36 
     | 
    
         
            +
                    infov 'Package size', source_package.path.size
         
     | 
| 
      
 37 
     | 
    
         
            +
                  end
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                  private
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                  attr_reader :tempdir
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                  def change_git_ignore
         
     | 
| 
      
 44 
     | 
    
         
            +
                    file = target_path.join('.gitignore')
         
     | 
| 
      
 45 
     | 
    
         
            +
                    file.write(
         
     | 
| 
      
 46 
     | 
    
         
            +
                      (file.read.each_line.map(&:strip).reject { |line| GITIGNORE_DEL.include?(line) } +
         
     | 
| 
      
 47 
     | 
    
         
            +
                        ['', '#eac_redmine_base0'] + GITIGNORE_ADD).map { |line| "#{line}\n" }.join
         
     | 
| 
      
 48 
     | 
    
         
            +
                    )
         
     | 
| 
      
 49 
     | 
    
         
            +
                  end
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                  def extract_package_to_tempdir
         
     | 
| 
      
 52 
     | 
    
         
            +
                    infom "Extracting package to tempdir #{tempdir}..."
         
     | 
| 
      
 53 
     | 
    
         
            +
                    ::EacRubyUtils::Envs.local.command(
         
     | 
| 
      
 54 
     | 
    
         
            +
                      'tar', '-xf', source_package.path.to_path, '-C', tempdir.to_path,
         
     | 
| 
      
 55 
     | 
    
         
            +
                      '--strip-components', '1'
         
     | 
| 
      
 56 
     | 
    
         
            +
                    ).execute!
         
     | 
| 
      
 57 
     | 
    
         
            +
                  end
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
                  def git_commit
         
     | 
| 
      
 60 
     | 
    
         
            +
                    if git_repo.dirty?
         
     | 
| 
      
 61 
     | 
    
         
            +
                      infom 'Git commiting...'
         
     | 
| 
      
 62 
     | 
    
         
            +
                      git_repo.command('add', '--', target_path).execute!
         
     | 
| 
      
 63 
     | 
    
         
            +
                      git_repo.command('commit', '-m', git_commit_message, '--', target_path).execute!
         
     | 
| 
      
 64 
     | 
    
         
            +
                    else
         
     | 
| 
      
 65 
     | 
    
         
            +
                      infom 'Nothing to commit'
         
     | 
| 
      
 66 
     | 
    
         
            +
                    end
         
     | 
| 
      
 67 
     | 
    
         
            +
                  end
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
                  def git_commit_message
         
     | 
| 
      
 70 
     | 
    
         
            +
                    "Core: update to #{version}."
         
     | 
| 
      
 71 
     | 
    
         
            +
                  end
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
                  def git_repo_uncached
         
     | 
| 
      
 74 
     | 
    
         
            +
                    ::EacGit::Local.new(target_path)
         
     | 
| 
      
 75 
     | 
    
         
            +
                  end
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
      
 77 
     | 
    
         
            +
                  def sync_content
         
     | 
| 
      
 78 
     | 
    
         
            +
                    ::Avm::Sync.new(source_path, target_path)
         
     | 
| 
      
 79 
     | 
    
         
            +
                               .add_exclude('/*').add_includes(*target_files_to_remove).move_mode(true).run
         
     | 
| 
      
 80 
     | 
    
         
            +
                  end
         
     | 
| 
      
 81 
     | 
    
         
            +
             
     | 
| 
      
 82 
     | 
    
         
            +
                  def source_package_uncached
         
     | 
| 
      
 83 
     | 
    
         
            +
                    ::Avm::CachedDownload.new(url, ::Avm.fs_cache.child('eac_redmine_base0', 'core_update'))
         
     | 
| 
      
 84 
     | 
    
         
            +
                  end
         
     | 
| 
      
 85 
     | 
    
         
            +
             
     | 
| 
      
 86 
     | 
    
         
            +
                  def validate_empty_dir
         
     | 
| 
      
 87 
     | 
    
         
            +
                    if source_path.children.empty?
         
     | 
| 
      
 88 
     | 
    
         
            +
                      infom 'No content left in source directory'
         
     | 
| 
      
 89 
     | 
    
         
            +
                    else
         
     | 
| 
      
 90 
     | 
    
         
            +
                      fatal_error 'Found entries in source directory: ' +
         
     | 
| 
      
 91 
     | 
    
         
            +
                                  source_path.children.map { |c| c.basename.to_path }.join(', ')
         
     | 
| 
      
 92 
     | 
    
         
            +
                    end
         
     | 
| 
      
 93 
     | 
    
         
            +
                  end
         
     | 
| 
      
 94 
     | 
    
         
            +
             
     | 
| 
      
 95 
     | 
    
         
            +
                  def source_path_uncached
         
     | 
| 
      
 96 
     | 
    
         
            +
                    ::Pathname.new(tempdir.to_path)
         
     | 
| 
      
 97 
     | 
    
         
            +
                  end
         
     | 
| 
      
 98 
     | 
    
         
            +
             
     | 
| 
      
 99 
     | 
    
         
            +
                  def target_files_to_remove
         
     | 
| 
      
 100 
     | 
    
         
            +
                    git_repo.command('ls-files').execute!
         
     | 
| 
      
 101 
     | 
    
         
            +
                            .each_line.map { |v| "/#{v.strip}" }
         
     | 
| 
      
 102 
     | 
    
         
            +
                            .without(*TARGET_KEEP)
         
     | 
| 
      
 103 
     | 
    
         
            +
                  end
         
     | 
| 
      
 104 
     | 
    
         
            +
             
     | 
| 
      
 105 
     | 
    
         
            +
                  def target_path_uncached
         
     | 
| 
      
 106 
     | 
    
         
            +
                    instance.read_entry('fs_path').to_pathname
         
     | 
| 
      
 107 
     | 
    
         
            +
                  end
         
     | 
| 
      
 108 
     | 
    
         
            +
                end
         
     | 
| 
      
 109 
     | 
    
         
            +
              end
         
     | 
| 
      
 110 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,55 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'avm/data/instance/unit'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'eac_ruby_utils/core_ext'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require 'curb'
         
     | 
| 
      
 6 
     | 
    
         
            +
            require 'open-uri'
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            module Avm
         
     | 
| 
      
 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 do_load(data_path)
         
     | 
| 
      
 22 
     | 
    
         
            +
                    do_load_by_web(data_path) || do_load_by_rake(data_path) || raise('Failed to load')
         
     | 
| 
      
 23 
     | 
    
         
            +
                  end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                  def do_load_by_web(data_path)
         
     | 
| 
      
 26 
     | 
    
         
            +
                    c = Curl::Easy.new(import_url)
         
     | 
| 
      
 27 
     | 
    
         
            +
                    c.multipart_form_post = true
         
     | 
| 
      
 28 
     | 
    
         
            +
                    c.http_post(Curl::PostField.file('redmine_with_git_tableless_load[path]', data_path))
         
     | 
| 
      
 29 
     | 
    
         
            +
                    c.perform
         
     | 
| 
      
 30 
     | 
    
         
            +
                    true
         
     | 
| 
      
 31 
     | 
    
         
            +
                  rescue Curl::Err::ConnectionFailedError
         
     | 
| 
      
 32 
     | 
    
         
            +
                    false
         
     | 
| 
      
 33 
     | 
    
         
            +
                  end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                  def do_load_by_rake(data_path)
         
     | 
| 
      
 36 
     | 
    
         
            +
                    instance.bundle('exec', 'rake', "redmine_with_git:load:all[#{data_path}]").system
         
     | 
| 
      
 37 
     | 
    
         
            +
                    true
         
     | 
| 
      
 38 
     | 
    
         
            +
                  end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
                  def export_url
         
     | 
| 
      
 41 
     | 
    
         
            +
                    url('/backup/export')
         
     | 
| 
      
 42 
     | 
    
         
            +
                  end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                  def import_url
         
     | 
| 
      
 45 
     | 
    
         
            +
                    url('/backup/import.json')
         
     | 
| 
      
 46 
     | 
    
         
            +
                  end
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                  def url(path)
         
     | 
| 
      
 49 
     | 
    
         
            +
                    uri = ::Addressable::URI.parse(instance.read_entry('web.url')) + path
         
     | 
| 
      
 50 
     | 
    
         
            +
                    uri.query_values = { key: instance.read_entry('admin.api_key') }
         
     | 
| 
      
 51 
     | 
    
         
            +
                    uri.to_s
         
     | 
| 
      
 52 
     | 
    
         
            +
                  end
         
     | 
| 
      
 53 
     | 
    
         
            +
                end
         
     | 
| 
      
 54 
     | 
    
         
            +
              end
         
     | 
| 
      
 55 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,36 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'avm/eac_webapp_base0/deploy'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'eac_ruby_utils/ruby'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            module Avm
         
     | 
| 
      
 7 
     | 
    
         
            +
              module EacRedmineBase0
         
     | 
| 
      
 8 
     | 
    
         
            +
                class Deploy < ::Avm::EacWebappBase0::Deploy
         
     | 
| 
      
 9 
     | 
    
         
            +
                  set_callback :assert_instance_branch, :after, :run_installer
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                  def run_installer
         
     | 
| 
      
 12 
     | 
    
         
            +
                    infom 'Running installer'
         
     | 
| 
      
 13 
     | 
    
         
            +
                    ::EacRubyUtils::Ruby.on_clean_environment do
         
     | 
| 
      
 14 
     | 
    
         
            +
                      installer_command.system!
         
     | 
| 
      
 15 
     | 
    
         
            +
                    end
         
     | 
| 
      
 16 
     | 
    
         
            +
                  end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                  def installer_command
         
     | 
| 
      
 19 
     | 
    
         
            +
                    instance.host_env.command(installer_path, install_task)
         
     | 
| 
      
 20 
     | 
    
         
            +
                  end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                  def installer_path
         
     | 
| 
      
 23 
     | 
    
         
            +
                    ::File.join(instance.read_entry(::Avm::Instances::EntryKeys::FS_PATH), 'plugins',
         
     | 
| 
      
 24 
     | 
    
         
            +
                                'redmine_installer', 'installer', 'run.sh')
         
     | 
| 
      
 25 
     | 
    
         
            +
                  end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                  def install_task
         
     | 
| 
      
 28 
     | 
    
         
            +
                    if instance.read_entry_optional('web.path').present?
         
     | 
| 
      
 29 
     | 
    
         
            +
                      'redmine_as_apache_path'
         
     | 
| 
      
 30 
     | 
    
         
            +
                    else
         
     | 
| 
      
 31 
     | 
    
         
            +
                      'redmine_as_apache_base'
         
     | 
| 
      
 32 
     | 
    
         
            +
                    end
         
     | 
| 
      
 33 
     | 
    
         
            +
                  end
         
     | 
| 
      
 34 
     | 
    
         
            +
                end
         
     | 
| 
      
 35 
     | 
    
         
            +
              end
         
     | 
| 
      
 36 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,37 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'avm/eac_redmine_base0/data_unit'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'avm/eac_redmine_base0/instances/docker_image'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require 'avm/eac_webapp_base0/instance'
         
     | 
| 
      
 6 
     | 
    
         
            +
            require 'avm/eac_rails_base1/instance'
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            module Avm
         
     | 
| 
      
 9 
     | 
    
         
            +
              module EacRedmineBase0
         
     | 
| 
      
 10 
     | 
    
         
            +
                class Instance < ::Avm::EacRailsBase1::Instance
         
     | 
| 
      
 11 
     | 
    
         
            +
                  FILES_UNITS = { files: 'files' }.freeze
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                  def docker_image_class
         
     | 
| 
      
 14 
     | 
    
         
            +
                    ::Avm::EacRedmineBase0::Instances::DockerImage
         
     | 
| 
      
 15 
     | 
    
         
            +
                  end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                  def docker_run_arguments
         
     | 
| 
      
 18 
     | 
    
         
            +
                    [
         
     | 
| 
      
 19 
     | 
    
         
            +
                      '--volume',
         
     | 
| 
      
 20 
     | 
    
         
            +
                      "#{read_entry(::Avm::Instances::EntryKeys::FS_PATH)}:/home/myuser/eac_redmine_base0",
         
     | 
| 
      
 21 
     | 
    
         
            +
                      '--publish', "#{read_entry(:ssh_port)}:22",
         
     | 
| 
      
 22 
     | 
    
         
            +
                      '--publish', "#{read_entry(:http_port)}:80",
         
     | 
| 
      
 23 
     | 
    
         
            +
                      '--publish', "#{read_entry(:https_port)}:443"
         
     | 
| 
      
 24 
     | 
    
         
            +
                    ]
         
     | 
| 
      
 25 
     | 
    
         
            +
                  end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                  def data_package
         
     | 
| 
      
 28 
     | 
    
         
            +
                    @data_package ||= ::Avm::Data::Instance::Package.new(
         
     | 
| 
      
 29 
     | 
    
         
            +
                      self,
         
     | 
| 
      
 30 
     | 
    
         
            +
                      units: {
         
     | 
| 
      
 31 
     | 
    
         
            +
                        all: ::Avm::EacRedmineBase0::DataUnit.new(self)
         
     | 
| 
      
 32 
     | 
    
         
            +
                      }
         
     | 
| 
      
 33 
     | 
    
         
            +
                    )
         
     | 
| 
      
 34 
     | 
    
         
            +
                  end
         
     | 
| 
      
 35 
     | 
    
         
            +
                end
         
     | 
| 
      
 36 
     | 
    
         
            +
              end
         
     | 
| 
      
 37 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,55 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'eac_ruby_utils/core_ext'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'avm/instances/docker_image'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require 'avm/eac_redmine_base0/patches/object/template'
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            module Avm
         
     | 
| 
      
 8 
     | 
    
         
            +
              module EacRedmineBase0
         
     | 
| 
      
 9 
     | 
    
         
            +
                module Instances
         
     | 
| 
      
 10 
     | 
    
         
            +
                  class DockerImage < ::Avm::Instances::DockerImage
         
     | 
| 
      
 11 
     | 
    
         
            +
                    enable_simple_cache
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                    REDMINE_SOURCE_HOST_SUBPATH = 'redmine_source'
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                    def avm_fs_cache_object_id
         
     | 
| 
      
 16 
     | 
    
         
            +
                      instance.id
         
     | 
| 
      
 17 
     | 
    
         
            +
                    end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                    def redmine_user
         
     | 
| 
      
 20 
     | 
    
         
            +
                      'redmine'
         
     | 
| 
      
 21 
     | 
    
         
            +
                    end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                    def redmine_user_home
         
     | 
| 
      
 24 
     | 
    
         
            +
                      "/home/#{redmine_user}"
         
     | 
| 
      
 25 
     | 
    
         
            +
                    end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                    def redmine_path
         
     | 
| 
      
 28 
     | 
    
         
            +
                      "#{redmine_user_home}/redmine_app"
         
     | 
| 
      
 29 
     | 
    
         
            +
                    end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                    def start_path
         
     | 
| 
      
 32 
     | 
    
         
            +
                      '/start.sh'
         
     | 
| 
      
 33 
     | 
    
         
            +
                    end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                    private
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                    def git_repo_uncached
         
     | 
| 
      
 38 
     | 
    
         
            +
                      ::EacGit::Local.new(instance.source_instance.fs_path)
         
     | 
| 
      
 39 
     | 
    
         
            +
                    end
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                    def redmine_source_git_id
         
     | 
| 
      
 42 
     | 
    
         
            +
                      git_repo.rev_parse('HEAD')
         
     | 
| 
      
 43 
     | 
    
         
            +
                    end
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
                    def redmine_source_path_uncached
         
     | 
| 
      
 46 
     | 
    
         
            +
                      r = provide_dir.join(REDMINE_SOURCE_HOST_SUBPATH)
         
     | 
| 
      
 47 
     | 
    
         
            +
                      ::FileUtils.rm_rf(r.to_path)
         
     | 
| 
      
 48 
     | 
    
         
            +
                      r.mkpath
         
     | 
| 
      
 49 
     | 
    
         
            +
                      git_repo.commit(redmine_source_git_id).archive_to_dir(r).system!
         
     | 
| 
      
 50 
     | 
    
         
            +
                      REDMINE_SOURCE_HOST_SUBPATH
         
     | 
| 
      
 51 
     | 
    
         
            +
                    end
         
     | 
| 
      
 52 
     | 
    
         
            +
                  end
         
     | 
| 
      
 53 
     | 
    
         
            +
                end
         
     | 
| 
      
 54 
     | 
    
         
            +
              end
         
     | 
| 
      
 55 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    ADDED
    
    | 
         @@ -0,0 +1,92 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            --- !ruby/object:Gem::Specification
         
     | 
| 
      
 2 
     | 
    
         
            +
            name: avm-eac_redmine_base0
         
     | 
| 
      
 3 
     | 
    
         
            +
            version: !ruby/object:Gem::Version
         
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.0
         
     | 
| 
      
 5 
     | 
    
         
            +
            platform: ruby
         
     | 
| 
      
 6 
     | 
    
         
            +
            authors:
         
     | 
| 
      
 7 
     | 
    
         
            +
            - Put here the authors
         
     | 
| 
      
 8 
     | 
    
         
            +
            autorequire: 
         
     | 
| 
      
 9 
     | 
    
         
            +
            bindir: bin
         
     | 
| 
      
 10 
     | 
    
         
            +
            cert_chain: []
         
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2021-07-08 00:00:00.000000000 Z
         
     | 
| 
      
 12 
     | 
    
         
            +
            dependencies:
         
     | 
| 
      
 13 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 14 
     | 
    
         
            +
              name: avm-eac_rails_base1
         
     | 
| 
      
 15 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 16 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 17 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 18 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 19 
     | 
    
         
            +
                    version: '0.1'
         
     | 
| 
      
 20 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 21 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 22 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 23 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 24 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 25 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 26 
     | 
    
         
            +
                    version: '0.1'
         
     | 
| 
      
 27 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 28 
     | 
    
         
            +
              name: eac_ruby_utils
         
     | 
| 
      
 29 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 30 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 31 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 32 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 33 
     | 
    
         
            +
                    version: '0.68'
         
     | 
| 
      
 34 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 35 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 36 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 37 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 38 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 39 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 40 
     | 
    
         
            +
                    version: '0.68'
         
     | 
| 
      
 41 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 42 
     | 
    
         
            +
              name: eac_ruby_gem_support
         
     | 
| 
      
 43 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 44 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 45 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 46 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 47 
     | 
    
         
            +
                    version: '0.2'
         
     | 
| 
      
 48 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 49 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 50 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 51 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 52 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 53 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 54 
     | 
    
         
            +
                    version: '0.2'
         
     | 
| 
      
 55 
     | 
    
         
            +
            description: 
         
     | 
| 
      
 56 
     | 
    
         
            +
            email: 
         
     | 
| 
      
 57 
     | 
    
         
            +
            executables: []
         
     | 
| 
      
 58 
     | 
    
         
            +
            extensions: []
         
     | 
| 
      
 59 
     | 
    
         
            +
            extra_rdoc_files: []
         
     | 
| 
      
 60 
     | 
    
         
            +
            files:
         
     | 
| 
      
 61 
     | 
    
         
            +
            - lib/avm/eac_redmine_base0.rb
         
     | 
| 
      
 62 
     | 
    
         
            +
            - lib/avm/eac_redmine_base0/apache_host.rb
         
     | 
| 
      
 63 
     | 
    
         
            +
            - lib/avm/eac_redmine_base0/core_update.rb
         
     | 
| 
      
 64 
     | 
    
         
            +
            - lib/avm/eac_redmine_base0/data_unit.rb
         
     | 
| 
      
 65 
     | 
    
         
            +
            - lib/avm/eac_redmine_base0/deploy.rb
         
     | 
| 
      
 66 
     | 
    
         
            +
            - lib/avm/eac_redmine_base0/instance.rb
         
     | 
| 
      
 67 
     | 
    
         
            +
            - lib/avm/eac_redmine_base0/instances/docker_image.rb
         
     | 
| 
      
 68 
     | 
    
         
            +
            - lib/avm/eac_redmine_base0/patches/object/template.rb
         
     | 
| 
      
 69 
     | 
    
         
            +
            - lib/avm/eac_redmine_base0/version.rb
         
     | 
| 
      
 70 
     | 
    
         
            +
            homepage: 
         
     | 
| 
      
 71 
     | 
    
         
            +
            licenses: []
         
     | 
| 
      
 72 
     | 
    
         
            +
            metadata: {}
         
     | 
| 
      
 73 
     | 
    
         
            +
            post_install_message: 
         
     | 
| 
      
 74 
     | 
    
         
            +
            rdoc_options: []
         
     | 
| 
      
 75 
     | 
    
         
            +
            require_paths:
         
     | 
| 
      
 76 
     | 
    
         
            +
            - lib
         
     | 
| 
      
 77 
     | 
    
         
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 78 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 79 
     | 
    
         
            +
              - - ">="
         
     | 
| 
      
 80 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 81 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 82 
     | 
    
         
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 83 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 84 
     | 
    
         
            +
              - - ">="
         
     | 
| 
      
 85 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 86 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 87 
     | 
    
         
            +
            requirements: []
         
     | 
| 
      
 88 
     | 
    
         
            +
            rubygems_version: 3.0.9
         
     | 
| 
      
 89 
     | 
    
         
            +
            signing_key: 
         
     | 
| 
      
 90 
     | 
    
         
            +
            specification_version: 4
         
     | 
| 
      
 91 
     | 
    
         
            +
            summary: Put here de description.
         
     | 
| 
      
 92 
     | 
    
         
            +
            test_files: []
         
     |