avm-eac_redmine_base0 0.16.1 → 0.17.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 64093513b7ff3ab871760d20832081528a1d712737b9b8c4bb0578bc617a2d5e
4
- data.tar.gz: 0d022489c9a621563cf50b2d38b0a84a73e3fcf12143ed0db67b0d018f752ba3
3
+ metadata.gz: f24264eaab80e14c42168a30561e40f309f84a9d67dc5e45c078409a1dbd3eda
4
+ data.tar.gz: e7b114c9bea0d113cefd1c6e9f8d231d03a39d743e04042e5417bc5b92751ecb
5
5
  SHA512:
6
- metadata.gz: a126cf301907db16a287b7b358b6b3454defa07fc447aa71df9ccab351af18410a7116944690dbcfb6161f497afe8b9f95cf1076eb006f2d2923dc62005f88f2
7
- data.tar.gz: a657c0c06683259f03c39821da2ca0a0f8fbedbdd67000cfe64fda7997e1e19240509ad0cc68c27e00728d5a2890a82239f9047955e73d04d46224e29c475829
6
+ metadata.gz: aed7b120ecde3e0fcc81ff01530eb1fec356b62ec934c6d5f39b0acebd61df31864c6af4f3726fa7e8aa2892c2624898421980d4c600f2d9767e9f648293942a
7
+ data.tar.gz: 613324a28ac37018f479b597dcfd7e9ced06bba558a891842b1ad391b09b21f98ecbce39e090606889826cf7f47037d6cde6545975bb278837cba39a8391b323
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_rails_base1/instances/base'
4
+ require 'avm/instances/data/files_unit'
5
+ require 'eac_ruby_utils/core_ext'
6
+
7
+ module Avm
8
+ module EacRedmineBase0
9
+ module Instances
10
+ class Base < ::Avm::EacRailsBase1::Instances::Base
11
+ module Files
12
+ FILES_SUBPATH = 'files'
13
+
14
+ # @return [Avm::Instances::Data::FilesUnit]
15
+ def files_data_unit
16
+ ::Avm::Instances::Data::FilesUnit.new(self, FILES_SUBPATH)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -18,6 +18,12 @@ module Avm
18
18
  uri_components_entries_values GITOLITE_ENTRY_KEYS_PREFIX
19
19
  end
20
20
 
21
+ # @return [Avm::Instances::Data::FilesUnit]
22
+ def gitolite_data_unit
23
+ ::Avm::Instances::Data::FilesUnit.new(self, gitolite_repositories_path,
24
+ sudo_user: entry('gitolite.username').value!)
25
+ end
26
+
21
27
  def gitolite_hostname_default_value
22
28
  DEFAULT_HOSTNAME
23
29
  end
@@ -28,6 +34,11 @@ module Avm
28
34
  end
29
35
  end
30
36
 
37
+ # @return [Pathname]
38
+ def gitolite_repositories_path
39
+ entry('gitolite.path').value!.to_pathname.join('repositories')
40
+ end
41
+
31
42
  def gitolite_scheme_default_value
32
43
  DEFAULT_SCHEME
33
44
  end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_rails_base1/instances/base'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Avm
7
+ module EacRedmineBase0
8
+ module Instances
9
+ class Base < ::Avm::EacRailsBase1::Instances::Base
10
+ module Install
11
+ def run_installer
12
+ ::EacRubyUtils::Ruby.on_clean_environment do
13
+ installer_command.system!
14
+ end
15
+ end
16
+
17
+ def installer_command
18
+ host_env.command(installer_path, install_task)
19
+ end
20
+
21
+ def installer_path
22
+ ::File.join(install_path, 'plugins', 'redmine_installer', 'installer',
23
+ 'run.sh')
24
+ end
25
+
26
+ def install_task
27
+ if web_path_optional.present?
28
+ 'redmine_as_apache_path'
29
+ else
30
+ 'redmine_as_apache_base'
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'addressable/uri'
4
- require 'avm/eac_redmine_base0/instances/data_unit'
4
+ require 'avm/eac_redmine_base0/instances/data_package'
5
5
  require 'avm/eac_redmine_base0/instances/docker_image'
6
6
  require 'avm/eac_redmine_base0/instances/runners'
7
7
  require 'avm/eac_redmine_base0/instances/rest_api'
@@ -14,8 +14,6 @@ module Avm
14
14
  require_sub __FILE__, include_modules: true
15
15
  enable_simple_cache
16
16
 
17
- FILES_UNITS = { files: 'files' }.freeze
18
-
19
17
  def docker_image_class
20
18
  ::Avm::EacRedmineBase0::Instances::DockerImage
21
19
  end
@@ -30,13 +28,9 @@ module Avm
30
28
  ]
31
29
  end
32
30
 
31
+ # @return [Avm::EacRedmineBase0::Instances::DataPackage]
33
32
  def data_package
34
- @data_package ||= ::Avm::Data::Instance::Package.new(
35
- self,
36
- units: {
37
- all: ::Avm::EacRedmineBase0::Instances::DataUnit.new(self)
38
- }
39
- )
33
+ @data_package ||= ::Avm::EacRedmineBase0::Instances::DataPackage.new(self)
40
34
  end
41
35
 
42
36
  # @return [Addressable::URI]
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/instances/data/package'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Avm
7
+ module EacRedmineBase0
8
+ module Instances
9
+ class DataPackage < ::Avm::Instances::Data::Package
10
+ after_load :run_installer
11
+
12
+ def initialize(instance, options = {})
13
+ super(instance, options.merge(units: options[:units].if_present({}).merge(
14
+ database: instance.database_unit, files: instance.files_data_unit,
15
+ gitolite: instance.gitolite_data_unit
16
+ )))
17
+ end
18
+
19
+ delegate :run_installer, to: :instance
20
+ end
21
+ end
22
+ end
23
+ end
@@ -11,25 +11,7 @@ module Avm
11
11
 
12
12
  def run_installer
13
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.install_path, 'plugins', 'redmine_installer', 'installer', 'run.sh')
25
- end
26
-
27
- def install_task
28
- if instance.web_path_optional.present?
29
- 'redmine_as_apache_path'
30
- else
31
- 'redmine_as_apache_base'
32
- end
14
+ instance.run_installer
33
15
  end
34
16
  end
35
17
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacRedmineBase0
5
- VERSION = '0.16.1'
5
+ VERSION = '0.17.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avm-eac_redmine_base0
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.1
4
+ version: 0.17.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Put here the authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-15 00:00:00.000000000 Z
11
+ date: 2022-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: avm
@@ -16,20 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.56'
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: 0.56.1
19
+ version: '0.57'
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
24
  - - "~>"
28
25
  - !ruby/object:Gem::Version
29
- version: '0.56'
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- version: 0.56.1
26
+ version: '0.57'
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: avm-eac_generic_base0
35
29
  requirement: !ruby/object:Gem::Requirement
@@ -51,6 +45,9 @@ dependencies:
51
45
  - - "~>"
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0.7'
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: 0.7.1
54
51
  type: :runtime
55
52
  prerelease: false
56
53
  version_requirements: !ruby/object:Gem::Requirement
@@ -58,6 +55,9 @@ dependencies:
58
55
  - - "~>"
59
56
  - !ruby/object:Gem::Version
60
57
  version: '0.7'
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 0.7.1
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: avm-eac_ubuntu_base0
63
63
  requirement: !ruby/object:Gem::Requirement
@@ -171,9 +171,11 @@ files:
171
171
  - lib/avm/eac_redmine_base0/instances/apache_host.rb
172
172
  - lib/avm/eac_redmine_base0/instances/base.rb
173
173
  - lib/avm/eac_redmine_base0/instances/base/database.rb
174
+ - lib/avm/eac_redmine_base0/instances/base/files.rb
174
175
  - lib/avm/eac_redmine_base0/instances/base/gitolite.rb
176
+ - lib/avm/eac_redmine_base0/instances/base/install.rb
175
177
  - lib/avm/eac_redmine_base0/instances/base/web.rb
176
- - lib/avm/eac_redmine_base0/instances/data_unit.rb
178
+ - lib/avm/eac_redmine_base0/instances/data_package.rb
177
179
  - lib/avm/eac_redmine_base0/instances/deploy.rb
178
180
  - lib/avm/eac_redmine_base0/instances/docker_image.rb
179
181
  - lib/avm/eac_redmine_base0/instances/rest_api.rb
@@ -1,53 +0,0 @@
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
- module Instances
11
- class DataUnit < ::Avm::Data::Instance::Unit
12
- common_constructor :instance
13
-
14
- EXPORT_PATH = '/backup/export'
15
- EXTENSION = '.tar'
16
- IMPORT_PATH = '/backup/import.json'
17
-
18
- def do_dump(data_path)
19
- ::File.open(data_path, 'wb') do |file|
20
- file << export_request.response.body_data_or_raise
21
- end
22
- end
23
-
24
- def do_load(data_path)
25
- do_load_by_web(data_path) || do_load_by_rake(data_path) || raise('Failed to load')
26
- end
27
-
28
- def do_load_by_web(data_path)
29
- c = Curl::Easy.new(import_url)
30
- c.multipart_form_post = true
31
- c.http_post(Curl::PostField.file('redmine_with_git_tableless_load[path]', data_path))
32
- c.perform
33
- true
34
- rescue Curl::Err::ConnectionFailedError
35
- false
36
- end
37
-
38
- def do_load_by_rake(data_path)
39
- instance.bundle('exec', 'rake', "redmine_with_git:load:all[#{data_path}]").system
40
- true
41
- end
42
-
43
- def export_request
44
- instance.rest_api.request(EXPORT_PATH)
45
- end
46
-
47
- def import_url
48
- instance.rest_api.build_service_url(IMPORT_PATH).to_s
49
- end
50
- end
51
- end
52
- end
53
- end