avm-eac_redmine_base0 0.19.1 → 0.20.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b27527dc74e72e965df3c22833d830e38db777b978c51029724bc0a6ed9f4e8d
4
- data.tar.gz: 6b9d3b228d2b45ee20a62a2870f8f20a81bbce3a6d64c13c3fe5030e6a305880
3
+ metadata.gz: '074843787a7e86e7a312cc98d9d87a408273fc0e25a3eee3c8059d5829dcce5a'
4
+ data.tar.gz: 121135debacd00cd742479585954e8b19b1676fb5e7307d232744ab1f2ad793c
5
5
  SHA512:
6
- metadata.gz: 2fb910a6048022cdc49c0abe2a5f75808a616ae15c92fd5d3b71f694bd254b55c86d02fe9dd378b5477bdc83fcc9d32fe2901b81a0694cfa26c8d93549fef715
7
- data.tar.gz: 4b81fbff0ad9dc1465f564e28859a20ebabc2a93374812bebc9d719d6fa4ed635669994eeb43bb2b45520596d32aeae93111ee0ccab12be217dc5c13d9fdda01
6
+ metadata.gz: 4f3be7cf0501d9986a2fdca8697a2b3ae550258ad32a83dd4ccb1e78d380e8b0695b8616115af413f6e40734a4090e4d44b5c6959622091fc3bfabcfef448fe9
7
+ data.tar.gz: 7ac2da04bc3cd9a1ae0d73b527f30f29707aac7aec6caf8c4c86835c02a31ceaf02e2aec799f9b0be87e1a076945a68792bc7a373d5c3b36f961fc5e1e2892ab
@@ -49,7 +49,7 @@ module Avm
49
49
  # @return [Avm::EacRedmineBase0::Instances::RestApi]
50
50
  def rest_api_uncached
51
51
  url = root_url
52
- url.query_values = { key: read_entry('api.key') }
52
+ url.query_values = { key: admin_api_key }
53
53
  ::Avm::EacRedmineBase0::Instances::RestApi.new(url)
54
54
  end
55
55
  end
@@ -12,6 +12,8 @@ module Avm
12
12
  class DockerImage < ::Avm::Instances::DockerImage
13
13
  enable_simple_cache
14
14
 
15
+ APACHE_HOST_DOCKERFILE_SUBPATH = 'apache_host_dockerfile'
16
+ APACHE_PATH_DOCKERFILE_SUBPATH = 'apache_path_dockerfile'
15
17
  INSTALLER_TARGET_TASK_WITH_WEB_PATH_BLANK = 'redmine_as_apache_base'
16
18
  INSTALLER_TARGET_TASK_WITH_WEB_PATH_PRESENT = 'redmine_as_apache_path'
17
19
  REDMINE_SOURCE_HOST_SUBPATH = 'redmine_source'
@@ -23,9 +25,12 @@ module Avm
23
25
  end
24
26
 
25
27
  def apache_setup
26
- return '' if web_path_present?
28
+ template.child(apache_setup_dockerfile).apply(self)
29
+ end
27
30
 
28
- template.child('Dockerfile_apache_setup').apply(self)
31
+ # @return [String]
32
+ def apache_setup_dockerfile
33
+ web_path_present? ? APACHE_PATH_DOCKERFILE_SUBPATH : APACHE_HOST_DOCKERFILE_SUBPATH
29
34
  end
30
35
 
31
36
  def base_image
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_rest/api'
4
+ require 'eac_rest/entity'
5
+ require 'eac_ruby_utils/core_ext'
6
+
7
+ module Avm
8
+ module EacRedmineBase0
9
+ module Instances
10
+ class RestApi < ::EacRest::Api
11
+ class EntityBase < ::EacRest::Entity
12
+ def build_request(url_suffix)
13
+ api.request_json("#{url_suffix}.json")
14
+ end
15
+
16
+ def data_from_response(response)
17
+ raise "\"#{response.url}\" returned non-ok status: #{response.status}" unless
18
+ response.status.to_s.start_with?('2')
19
+
20
+ return {} if response.body_str.blank?
21
+
22
+ response.body_data
23
+ rescue ::JSON::ParserError
24
+ raise "\"#{response.url}\" returned invalid JSON: \"#{response.body_str}\"" \
25
+ " (Status: #{response.status})"
26
+ end
27
+
28
+ def fetch_data(url_suffix)
29
+ data_from_response(build_request(url_suffix).response)
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_redmine_base0/instances/rest_api/entity_base'
4
+ require 'avm/eac_redmine_base0/instances/rest_api/wiki_page'
5
+ require 'eac_rest/api'
6
+ require 'eac_ruby_utils/core_ext'
7
+
8
+ module Avm
9
+ module EacRedmineBase0
10
+ module Instances
11
+ class RestApi < ::EacRest::Api
12
+ class Project < ::Avm::EacRedmineBase0::Instances::RestApi::EntityBase
13
+ # @return [String]
14
+ def prefix
15
+ "/projects/#{id}"
16
+ end
17
+
18
+ # @return [Avm::EacRedmineBase0::Instances::RestApi::WikiPage]
19
+ def wiki_page(name)
20
+ child_entity(::Avm::EacRedmineBase0::Instances::RestApi::WikiPage, name)
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_redmine_base0/instances/rest_api/entity_base'
4
+ require 'eac_rest/api'
5
+ require 'eac_ruby_utils/core_ext'
6
+
7
+ module Avm
8
+ module EacRedmineBase0
9
+ module Instances
10
+ class RestApi < ::EacRest::Api
11
+ class Root < ::Avm::EacRedmineBase0::Instances::RestApi::EntityBase
12
+ # @param id_or_identifier [String]
13
+ # @return [Avm::EacRedmineBase0::Instances::RestApi::Project]
14
+ def project(id_or_identifier)
15
+ api.entity(::Avm::EacRedmineBase0::Instances::RestApi::Project, id_or_identifier)
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_redmine_base0/instances/rest_api/entity_base'
4
+ require 'eac_rest/api'
5
+ require 'eac_ruby_utils/core_ext'
6
+
7
+ module Avm
8
+ module EacRedmineBase0
9
+ module Instances
10
+ class RestApi < ::EacRest::Api
11
+ class WikiPage < ::Avm::EacRedmineBase0::Instances::RestApi::EntityBase
12
+ enable_simple_cache
13
+
14
+ # @return [Hash]
15
+ def data_from_id
16
+ fetch_data(prefix)
17
+ end
18
+
19
+ # @return [String]
20
+ def data_root
21
+ 'wiki_page'
22
+ end
23
+
24
+ # @return [String]
25
+ def prefix
26
+ "#{parent_entity.prefix}/wiki/#{id}"
27
+ end
28
+
29
+ # @return [String]
30
+ def read
31
+ data.fetch(data_root).fetch('text')
32
+ end
33
+
34
+ # @param content [String]
35
+ # @return [+self+]
36
+ def write(text)
37
+ data_from_response(
38
+ build_request(prefix).verb(:put).header('Content-type', 'application/json')
39
+ .body_data(write_data(text).to_json).response
40
+ )
41
+ end
42
+
43
+ # @param text [String]
44
+ # @return [Hash]
45
+ def write_data(text)
46
+ {
47
+ data_root => { 'text' => text }
48
+ }
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
@@ -7,6 +7,7 @@ module Avm
7
7
  module EacRedmineBase0
8
8
  module Instances
9
9
  class RestApi < ::EacRest::Api
10
+ require_sub __FILE__
10
11
  end
11
12
  end
12
13
  end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+
5
+ module Avm
6
+ module EacRedmineBase0
7
+ module Instances
8
+ module Runners
9
+ class Project
10
+ class WikiPage
11
+ class Read
12
+ runner_with :help, :output
13
+
14
+ def run
15
+ run_output
16
+ end
17
+
18
+ def output_content
19
+ runner_context.call(:wiki_page_content)
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,70 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+
5
+ module Avm
6
+ module EacRedmineBase0
7
+ module Instances
8
+ module Runners
9
+ class Project
10
+ class WikiPage
11
+ class Write
12
+ runner_with :help, :confirmation, :input do
13
+ bool_opt '-f', '--force'
14
+ end
15
+ delegate :force?, to: :parsed
16
+
17
+ def run
18
+ start_banner
19
+ if write?
20
+ run_write
21
+ else
22
+ success 'Content unchanged, no further action will be taken'
23
+ end
24
+ end
25
+
26
+ def start_banner
27
+ infov 'Content'
28
+ infov ' * Current', current_content
29
+ infov ' * New', new_content
30
+ infov ' * Changed?', content_changed?
31
+ end
32
+
33
+ # @return [Boolean]
34
+ def content_changed?
35
+ new_content != current_content
36
+ end
37
+
38
+ def run_write
39
+ if confirm?('Write?')
40
+ infom 'Writing...'
41
+ runner_context.call(:wiki_page).write(new_content)
42
+ success('Writed!')
43
+ else
44
+ success('Unconfirmed, no further action will be taken')
45
+ end
46
+ end
47
+
48
+ # @return [Boolean]
49
+ def write?
50
+ parsed.force? || content_changed?
51
+ end
52
+
53
+ private
54
+
55
+ # @return [String]
56
+ def current_content_uncached
57
+ runner_context.call(:wiki_page_content)
58
+ end
59
+
60
+ # @return [String]
61
+ def new_content_uncached
62
+ input_content
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+
5
+ module Avm
6
+ module EacRedmineBase0
7
+ module Instances
8
+ module Runners
9
+ class Project
10
+ class WikiPage
11
+ runner_with :help, :subcommands do
12
+ pos_arg :name
13
+ subcommands
14
+ end
15
+
16
+ def wiki_page
17
+ runner_context.call(:project).wiki_page(parsed.name)
18
+ end
19
+
20
+ def wiki_page_content
21
+ wiki_page.read
22
+ end
23
+
24
+ require_sub __FILE__
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+
5
+ module Avm
6
+ module EacRedmineBase0
7
+ module Instances
8
+ module Runners
9
+ class Project
10
+ runner_with :help, :subcommands do
11
+ pos_arg :id_or_identifier
12
+ subcommands
13
+ end
14
+
15
+ private
16
+
17
+ def project_uncached
18
+ runner_context.call(:instance).rest_api.root_entity.project(parsed.id_or_identifier)
19
+ end
20
+
21
+ require_sub __FILE__
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacRedmineBase0
5
- VERSION = '0.19.1'
5
+ VERSION = '0.20.0'
6
6
  end
7
7
  end
@@ -0,0 +1,5 @@
1
+ USER root
2
+ RUN a2ensite 000-default
3
+ RUN a2ensite default-ssl
4
+ RUN a2enmod ssl
5
+ RUN service apache2 restart
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.19.1
4
+ version: 0.20.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: 2023-04-14 00:00:00.000000000 Z
11
+ date: 2023-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: avm
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.67'
19
+ version: '0.68'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.67'
26
+ version: '0.68'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: avm-eac_generic_base0
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -67,7 +67,7 @@ dependencies:
67
67
  version: '0.4'
68
68
  - - ">="
69
69
  - !ruby/object:Gem::Version
70
- version: 0.4.1
70
+ version: 0.4.2
71
71
  type: :runtime
72
72
  prerelease: false
73
73
  version_requirements: !ruby/object:Gem::Requirement
@@ -77,7 +77,7 @@ dependencies:
77
77
  version: '0.4'
78
78
  - - ">="
79
79
  - !ruby/object:Gem::Version
80
- version: 0.4.1
80
+ version: 0.4.2
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: curb
83
83
  requirement: !ruby/object:Gem::Requirement
@@ -118,20 +118,14 @@ dependencies:
118
118
  requirements:
119
119
  - - "~>"
120
120
  - !ruby/object:Gem::Version
121
- version: '0.7'
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: 0.7.3
121
+ version: '0.9'
125
122
  type: :runtime
126
123
  prerelease: false
127
124
  version_requirements: !ruby/object:Gem::Requirement
128
125
  requirements:
129
126
  - - "~>"
130
127
  - !ruby/object:Gem::Version
131
- version: '0.7'
132
- - - ">="
133
- - !ruby/object:Gem::Version
134
- version: 0.7.3
128
+ version: '0.9'
135
129
  - !ruby/object:Gem::Dependency
136
130
  name: eac_ruby_utils
137
131
  requirement: !ruby/object:Gem::Requirement
@@ -179,8 +173,16 @@ files:
179
173
  - lib/avm/eac_redmine_base0/instances/deploy.rb
180
174
  - lib/avm/eac_redmine_base0/instances/docker_image.rb
181
175
  - lib/avm/eac_redmine_base0/instances/rest_api.rb
176
+ - lib/avm/eac_redmine_base0/instances/rest_api/entity_base.rb
177
+ - lib/avm/eac_redmine_base0/instances/rest_api/project.rb
178
+ - lib/avm/eac_redmine_base0/instances/rest_api/root.rb
179
+ - lib/avm/eac_redmine_base0/instances/rest_api/wiki_page.rb
182
180
  - lib/avm/eac_redmine_base0/instances/runners.rb
183
181
  - lib/avm/eac_redmine_base0/instances/runners/docker.rb
182
+ - lib/avm/eac_redmine_base0/instances/runners/project.rb
183
+ - lib/avm/eac_redmine_base0/instances/runners/project/wiki_page.rb
184
+ - lib/avm/eac_redmine_base0/instances/runners/project/wiki_page/read.rb
185
+ - lib/avm/eac_redmine_base0/instances/runners/project/wiki_page/write.rb
184
186
  - lib/avm/eac_redmine_base0/instances/runners/project_rename.rb
185
187
  - lib/avm/eac_redmine_base0/sources.rb
186
188
  - lib/avm/eac_redmine_base0/sources/base.rb
@@ -194,9 +196,10 @@ files:
194
196
  - template/avm/eac_redmine_base0/instances/deploy/config/install.sh.template
195
197
  - template/avm/eac_redmine_base0/instances/deploy/config/secrets.yml
196
198
  - template/avm/eac_redmine_base0/instances/docker_image/Dockerfile.template
197
- - template/avm/eac_redmine_base0/instances/docker_image/Dockerfile_apache_setup
199
+ - template/avm/eac_redmine_base0/instances/docker_image/apache_host_dockerfile
198
200
  - template/avm/eac_redmine_base0/instances/docker_image/apache_http_virtualhost.conf.template
199
201
  - template/avm/eac_redmine_base0/instances/docker_image/apache_https_virtualhost.conf.template
202
+ - template/avm/eac_redmine_base0/instances/docker_image/apache_path_dockerfile
200
203
  - template/avm/eac_redmine_base0/instances/docker_image/start.sh.template
201
204
  homepage:
202
205
  licenses: []