avm 0.30.0 → 0.33.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 +4 -4
- data/lib/avm/applications/base.rb +2 -2
- data/lib/avm/entries/auto_values/entry.rb +32 -0
- data/lib/avm/entries/auto_values.rb +11 -0
- data/lib/avm/{instances/entries.rb → entries/base.rb} +9 -5
- data/lib/avm/{instances → entries}/entry.rb +3 -12
- data/lib/avm/entries.rb +9 -0
- data/lib/avm/instances/base/auto_values/admin.rb +2 -2
- data/lib/avm/instances/base/auto_values/database.rb +1 -1
- data/lib/avm/instances/base/auto_values/filesystem.rb +9 -8
- data/lib/avm/instances/base/auto_values/install.rb +48 -0
- data/lib/avm/instances/base/auto_values/mailer.rb +5 -4
- data/lib/avm/instances/base/auto_values/ruby.rb +1 -1
- data/lib/avm/instances/base/auto_values/system.rb +3 -3
- data/lib/avm/instances/base/auto_values.rb +4 -5
- data/lib/avm/instances/base.rb +10 -10
- data/lib/avm/instances/entry_keys.rb +8 -7
- data/lib/avm/instances.rb +3 -2
- data/lib/avm/scms/base.rb +2 -2
- data/lib/avm/source_generators/base.rb +2 -2
- data/lib/avm/sources/base.rb +4 -4
- data/lib/avm/version.rb +1 -1
- data/lib/avm/with/application_stereotype.rb +35 -0
- data/lib/avm/with/extra_subcommands.rb +44 -0
- metadata +14 -11
- data/lib/avm/instances/base/auto_values/access.rb +0 -40
- data/lib/avm/with_application_stereotype.rb +0 -33
- data/lib/avm/with_dynamic_runners.rb +0 -42
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a138a71c9d6253cf06cb24540bdb765dff78cea3cd9a93689952bdb60795833e
|
4
|
+
data.tar.gz: fa16c54d070882c7c3babda535010f0cfd66727a6c126e65a0b7da58b7e328d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9bf6e089f8eba0bfed6ad0783c28948d1ee2653f3940c879e8e1d6451ff49009f639dff737c606e5d5baafd45108cf645b8dcc772481f2fb116f73cbb90586b1
|
7
|
+
data.tar.gz: fd7986157d7b494b934ebe1d491040252d2b2a73cc000eba1b25e29bbf26bc935a9ab07b54ab8e5fca0a42fefbea4ee7e82820c635d990d5194b6e44976ec288
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'avm/
|
3
|
+
require 'avm/entries/base'
|
4
4
|
require 'avm/registry'
|
5
5
|
require 'eac_ruby_utils/core_ext'
|
6
6
|
|
@@ -9,7 +9,7 @@ module Avm
|
|
9
9
|
class Base
|
10
10
|
enable_simple_cache
|
11
11
|
require_sub __FILE__, include_modules: true
|
12
|
-
include ::Avm::
|
12
|
+
include ::Avm::Entries::Base
|
13
13
|
|
14
14
|
LOCAL_INSTANCE_SUFFIX = 'dev'
|
15
15
|
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_config/node'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module Entries
|
8
|
+
module AutoValues
|
9
|
+
class Entry
|
10
|
+
class << self
|
11
|
+
def auto_value_method_name(suffix)
|
12
|
+
"auto_#{suffix.to_s.gsub('.', '_')}"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
common_constructor :entries_provider, :suffix
|
17
|
+
|
18
|
+
def auto_value_method
|
19
|
+
self.class.auto_value_method_name(suffix)
|
20
|
+
end
|
21
|
+
|
22
|
+
def found?
|
23
|
+
entries_provider.respond_to?(auto_value_method, true)
|
24
|
+
end
|
25
|
+
|
26
|
+
def value
|
27
|
+
entries_provider.if_respond(auto_value_method)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -1,17 +1,21 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'eac_ruby_utils/core_ext'
|
4
|
-
require 'avm/
|
4
|
+
require 'avm/entries/entry'
|
5
5
|
|
6
6
|
module Avm
|
7
|
-
module
|
8
|
-
module
|
7
|
+
module Entries
|
8
|
+
module Base
|
9
|
+
def entries_provider_id
|
10
|
+
id
|
11
|
+
end
|
12
|
+
|
9
13
|
def entry(suffix, options = {})
|
10
|
-
::Avm::
|
14
|
+
::Avm::Entries::Entry.new(self, suffix, options)
|
11
15
|
end
|
12
16
|
|
13
17
|
def path_prefix
|
14
|
-
@path_prefix ||= [
|
18
|
+
@path_prefix ||= [entries_provider_id].freeze
|
15
19
|
end
|
16
20
|
|
17
21
|
def read_entry(entry_suffix, options = {})
|
@@ -1,25 +1,16 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'avm/entries/auto_values/entry'
|
3
4
|
require 'eac_config/node'
|
4
5
|
require 'eac_ruby_utils/core_ext'
|
5
6
|
|
6
7
|
module Avm
|
7
|
-
module
|
8
|
+
module Entries
|
8
9
|
class Entry
|
9
|
-
class << self
|
10
|
-
def auto_value_method_name(suffix)
|
11
|
-
"auto_#{suffix.to_s.gsub('.', '_')}"
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
10
|
common_constructor :parent, :suffix, :options
|
16
11
|
|
17
12
|
def auto_value
|
18
|
-
|
19
|
-
end
|
20
|
-
|
21
|
-
def auto_value_method
|
22
|
-
self.class.auto_value_method_name(suffix)
|
13
|
+
::Avm::Entries::AutoValues::Entry.new(parent, suffix).value
|
23
14
|
end
|
24
15
|
|
25
16
|
def full_path
|
data/lib/avm/entries.rb
ADDED
@@ -6,11 +6,11 @@ module Avm
|
|
6
6
|
module AutoValues
|
7
7
|
module Admin
|
8
8
|
def auto_admin_email
|
9
|
-
inherited_entry_value(::Avm::Instances::EntryKeys::
|
9
|
+
inherited_entry_value(::Avm::Instances::EntryKeys::INSTALL_ID, 'admin.email')
|
10
10
|
end
|
11
11
|
|
12
12
|
def auto_admin_name
|
13
|
-
inherited_entry_value(::Avm::Instances::EntryKeys::
|
13
|
+
inherited_entry_value(::Avm::Instances::EntryKeys::INSTALL_ID, 'admin.name')
|
14
14
|
end
|
15
15
|
end
|
16
16
|
end
|
@@ -61,7 +61,7 @@ module Avm
|
|
61
61
|
def database_auto_common(suffix)
|
62
62
|
database_key = ::Avm::Instances::EntryKeys.const_get("database_#{suffix}".upcase)
|
63
63
|
inherited_entry_value(::Avm::Instances::EntryKeys::DATABASE_ID, database_key) ||
|
64
|
-
inherited_entry_value(::Avm::Instances::EntryKeys::
|
64
|
+
inherited_entry_value(::Avm::Instances::EntryKeys::INSTALL_ID, database_key)
|
65
65
|
end
|
66
66
|
|
67
67
|
def database_port_by_system
|
@@ -8,29 +8,30 @@ module Avm
|
|
8
8
|
module AutoValues
|
9
9
|
module Filesystem
|
10
10
|
def auto_fs_path
|
11
|
-
inherited_entry_value(::Avm::Instances::EntryKeys::
|
11
|
+
inherited_entry_value(::Avm::Instances::EntryKeys::INSTALL_ID,
|
12
12
|
::Avm::Instances::EntryKeys::FS_PATH) { |v| v + '/' + id }
|
13
13
|
end
|
14
14
|
|
15
15
|
def auto_data_fs_path
|
16
|
-
inherited_entry_value(::Avm::Instances::EntryKeys::
|
16
|
+
inherited_entry_value(::Avm::Instances::EntryKeys::INSTALL_ID,
|
17
17
|
::Avm::Instances::EntryKeys::DATA_FS_PATH) { |v| v + '/' + id }
|
18
18
|
end
|
19
19
|
|
20
20
|
def auto_fs_url
|
21
|
-
|
21
|
+
auto_fs_url_with_install || auto_fs_url_without_install
|
22
22
|
end
|
23
23
|
|
24
|
-
def
|
25
|
-
read_entry_optional(
|
24
|
+
def auto_fs_url_with_install
|
25
|
+
read_entry_optional(::Avm::Instances::EntryKeys::INSTALL_URL)
|
26
|
+
.if_present do |install_url|
|
26
27
|
read_entry_optional('fs_path').if_present do |fs_path|
|
27
|
-
"#{
|
28
|
+
"#{install_url}#{fs_path}"
|
28
29
|
end
|
29
30
|
end
|
30
31
|
end
|
31
32
|
|
32
|
-
def
|
33
|
-
return nil if read_entry_optional(
|
33
|
+
def auto_fs_url_without_install
|
34
|
+
return nil if read_entry_optional(::Avm::Instances::EntryKeys::INSTALL_URL).present?
|
34
35
|
|
35
36
|
read_entry_optional('fs_path').if_present do |fs_path|
|
36
37
|
"file://#{fs_path}"
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/instances/entry_keys'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Instances
|
7
|
+
class Base
|
8
|
+
module AutoValues
|
9
|
+
module Install
|
10
|
+
def auto_access
|
11
|
+
read_entry_optional(::Avm::Instances::EntryKeys::INSTALL_URL).present? ? 'ssh' : 'local'
|
12
|
+
end
|
13
|
+
|
14
|
+
def auto_install_hostname
|
15
|
+
inherited_entry_value(::Avm::Instances::EntryKeys::INSTALL_ID,
|
16
|
+
::Avm::Instances::EntryKeys::INSTALL_HOSTNAME)
|
17
|
+
end
|
18
|
+
|
19
|
+
def auto_install_port
|
20
|
+
inherited_entry_value(::Avm::Instances::EntryKeys::INSTALL_ID,
|
21
|
+
::Avm::Instances::EntryKeys::INSTALL_PORT) || 22
|
22
|
+
end
|
23
|
+
|
24
|
+
def auto_install_username
|
25
|
+
inherited_entry_value(::Avm::Instances::EntryKeys::INSTALL_ID,
|
26
|
+
::Avm::Instances::EntryKeys::INSTALL_USERNAME)
|
27
|
+
end
|
28
|
+
|
29
|
+
def auto_install_url
|
30
|
+
inherited_entry_value(::Avm::Instances::EntryKeys::INSTALL_ID,
|
31
|
+
::Avm::Instances::EntryKeys::INSTALL_URL) ||
|
32
|
+
auto_install_url_by_parts
|
33
|
+
end
|
34
|
+
|
35
|
+
def auto_install_url_by_parts
|
36
|
+
read_entry_optional(::Avm::Instances::EntryKeys::INSTALL_HOSTNAME).if_present do |a|
|
37
|
+
a = read_entry_optional(::Avm::Instances::EntryKeys::INSTALL_USERNAME)
|
38
|
+
.if_present(a) { |v| "#{v}@#{a}" }
|
39
|
+
a = read_entry_optional(::Avm::Instances::EntryKeys::INSTALL_PORT)
|
40
|
+
.if_present(a) { |v| "#{a}:#{v}" }
|
41
|
+
"ssh://#{a}"
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'avm/
|
3
|
+
require 'avm/entries/auto_values/entry'
|
4
|
+
require 'avm/entries/entry'
|
4
5
|
require 'avm/instances/entry_keys'
|
5
6
|
|
6
7
|
module Avm
|
@@ -11,15 +12,15 @@ module Avm
|
|
11
12
|
::Avm::Instances::EntryKeys.all.select { |c| c.to_s.start_with?('mailer.') }
|
12
13
|
.reject { |c| c == ::Avm::Instances::EntryKeys::MAILER_ID }
|
13
14
|
.each do |mailer_key|
|
14
|
-
define_method ::Avm::
|
15
|
+
define_method ::Avm::Entries::AutoValues::Entry.auto_value_method_name(mailer_key) do
|
15
16
|
mailer_auto_common(mailer_key)
|
16
17
|
end
|
17
18
|
end
|
18
19
|
|
19
20
|
def auto_mailer_id
|
20
|
-
inherited_entry_value(::Avm::Instances::EntryKeys::
|
21
|
+
inherited_entry_value(::Avm::Instances::EntryKeys::INSTALL_ID,
|
21
22
|
::Avm::Instances::EntryKeys::MAILER_ID) ||
|
22
|
-
read_entry_optional(::Avm::Instances::EntryKeys::
|
23
|
+
read_entry_optional(::Avm::Instances::EntryKeys::INSTALL_ID)
|
23
24
|
end
|
24
25
|
|
25
26
|
private
|
@@ -8,12 +8,12 @@ module Avm
|
|
8
8
|
module AutoValues
|
9
9
|
module System
|
10
10
|
def auto_system_username
|
11
|
-
inherited_entry_value(::Avm::Instances::EntryKeys::
|
12
|
-
read_entry_optional(
|
11
|
+
inherited_entry_value(::Avm::Instances::EntryKeys::INSTALL_ID, 'system.username') ||
|
12
|
+
read_entry_optional(::Avm::Instances::EntryKeys::INSTALL_USERNAME)
|
13
13
|
end
|
14
14
|
|
15
15
|
def auto_system_groupname
|
16
|
-
inherited_entry_value(::Avm::Instances::EntryKeys::
|
16
|
+
inherited_entry_value(::Avm::Instances::EntryKeys::INSTALL_ID, 'system.groupname') ||
|
17
17
|
read_entry_optional('system.username')
|
18
18
|
end
|
19
19
|
end
|
@@ -1,16 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'eac_ruby_utils/
|
4
|
-
::EacRubyUtils.require_sub(__FILE__)
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
5
4
|
|
6
5
|
module Avm
|
7
6
|
module Instances
|
8
7
|
class Base
|
9
8
|
module AutoValues
|
10
|
-
|
9
|
+
require_sub __FILE__
|
11
10
|
|
12
|
-
|
13
|
-
%w[
|
11
|
+
common_concern do
|
12
|
+
%w[Admin Data Database Filesystem Install Mailer Ruby Source System Web]
|
14
13
|
.each do |class_name|
|
15
14
|
include const_get(class_name)
|
16
15
|
end
|
data/lib/avm/instances/base.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'avm/
|
4
|
-
require 'avm/
|
3
|
+
require 'avm/with/application_stereotype'
|
4
|
+
require 'avm/with/extra_subcommands'
|
5
5
|
require 'eac_ruby_utils/require_sub'
|
6
6
|
require 'eac_ruby_utils/simple_cache'
|
7
|
-
require 'avm/
|
7
|
+
require 'avm/entries/base'
|
8
8
|
|
9
9
|
module Avm
|
10
10
|
module Instances
|
@@ -13,9 +13,9 @@ module Avm
|
|
13
13
|
enable_listable
|
14
14
|
enable_simple_cache
|
15
15
|
require_sub __FILE__, include_modules: true
|
16
|
-
include ::Avm::
|
17
|
-
include ::Avm::
|
18
|
-
include ::Avm::
|
16
|
+
include ::Avm::Entries::Base
|
17
|
+
include ::Avm::With::ExtraSubcommands
|
18
|
+
include ::Avm::With::ApplicationStereotype
|
19
19
|
|
20
20
|
lists.add_string :access, :local, :ssh
|
21
21
|
|
@@ -51,11 +51,11 @@ module Avm
|
|
51
51
|
end
|
52
52
|
|
53
53
|
def host_env_uncached
|
54
|
-
|
55
|
-
case
|
54
|
+
install_uri = entry(::Avm::Instances::EntryKeys::INSTALL_URL).value.to_uri
|
55
|
+
case install_uri.scheme
|
56
56
|
when 'local' then ::EacRubyUtils::Envs.local
|
57
|
-
when 'ssh' then ::EacRubyUtils::Envs.ssh(
|
58
|
-
else raise("Unmapped access value: \"#{
|
57
|
+
when 'ssh' then ::EacRubyUtils::Envs.ssh(install_uri)
|
58
|
+
else raise("Unmapped access value: \"#{install_uri}\"")
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
@@ -5,6 +5,8 @@ require 'eac_ruby_utils/core_ext'
|
|
5
5
|
module Avm
|
6
6
|
module Instances
|
7
7
|
module EntryKeys
|
8
|
+
URI_FIELDS = %i[fragment hostname password path port query scheme url username].freeze
|
9
|
+
|
8
10
|
class << self
|
9
11
|
def all
|
10
12
|
all_keys.to_a
|
@@ -42,18 +44,17 @@ module Avm
|
|
42
44
|
end
|
43
45
|
|
44
46
|
{
|
45
|
-
'' => %w[data_fs_path fs_path
|
46
|
-
admin: %w[
|
47
|
-
database: %w[id
|
47
|
+
'' => %w[data_fs_path fs_path name source_instance_id],
|
48
|
+
admin: URI_FIELDS + %w[api_key],
|
49
|
+
database: URI_FIELDS + %w[id limit name system timeout extra],
|
48
50
|
docker: %w[registry],
|
49
51
|
fs: %w[url],
|
52
|
+
install: URI_FIELDS + %w[id],
|
50
53
|
mailer: {
|
51
54
|
'' => %w[id from reply_to],
|
52
|
-
smtp: %w[address
|
53
|
-
starttls_auto tls]
|
55
|
+
smtp: URI_FIELDS + %w[address domain authentication openssl_verify_mode starttls_auto tls]
|
54
56
|
},
|
55
|
-
|
56
|
-
web: %w[authority hostname path port scheme url userinfo]
|
57
|
+
web: URI_FIELDS + %w[authority userinfo]
|
57
58
|
}.each { |prefix, suffixes| keys_consts_set(prefix, suffixes) }
|
58
59
|
end
|
59
60
|
end
|
data/lib/avm/instances.rb
CHANGED
data/lib/avm/scms/base.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'avm/
|
3
|
+
require 'avm/with/application_stereotype'
|
4
4
|
require 'eac_ruby_utils/core_ext'
|
5
5
|
|
6
6
|
module Avm
|
@@ -8,7 +8,7 @@ module Avm
|
|
8
8
|
class Base
|
9
9
|
enable_abstract_methods
|
10
10
|
enable_simple_cache
|
11
|
-
include ::Avm::
|
11
|
+
include ::Avm::With::ApplicationStereotype
|
12
12
|
abstract_methods :update, :valid?
|
13
13
|
common_constructor :path do
|
14
14
|
self.path = path.to_pathname
|
@@ -1,12 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'avm/
|
3
|
+
require 'avm/with/application_stereotype'
|
4
4
|
require 'eac_ruby_utils/core_ext'
|
5
5
|
|
6
6
|
module Avm
|
7
7
|
module SourceGenerators
|
8
8
|
class Base
|
9
|
-
include ::Avm::
|
9
|
+
include ::Avm::With::ApplicationStereotype
|
10
10
|
common_constructor :target_path do
|
11
11
|
self.target_path = target_path.to_pathname
|
12
12
|
end
|
data/lib/avm/sources/base.rb
CHANGED
@@ -2,8 +2,8 @@
|
|
2
2
|
|
3
3
|
require 'avm/registry'
|
4
4
|
require 'avm/scms/null'
|
5
|
-
require 'avm/
|
6
|
-
require 'avm/
|
5
|
+
require 'avm/with/application_stereotype'
|
6
|
+
require 'avm/with/extra_subcommands'
|
7
7
|
require 'eac_git'
|
8
8
|
require 'eac_ruby_utils/core_ext'
|
9
9
|
|
@@ -11,8 +11,8 @@ module Avm
|
|
11
11
|
module Sources
|
12
12
|
class Base
|
13
13
|
require_sub __FILE__, include_modules: true
|
14
|
-
include ::Avm::
|
15
|
-
include ::Avm::
|
14
|
+
include ::Avm::With::ApplicationStereotype
|
15
|
+
include ::Avm::With::ExtraSubcommands
|
16
16
|
compare_by :path
|
17
17
|
enable_abstract_methods
|
18
18
|
enable_simple_cache
|
data/lib/avm/version.rb
CHANGED
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module With
|
7
|
+
module ApplicationStereotype
|
8
|
+
common_concern do
|
9
|
+
include ClassMethods
|
10
|
+
end
|
11
|
+
|
12
|
+
module ClassMethods
|
13
|
+
# @return [Avm::ApplicationStereotype::Base]
|
14
|
+
def application_stereotype
|
15
|
+
@application_stereotype ||=
|
16
|
+
::Avm::Registry.application_stereotypes.detect(application_stereotype_name)
|
17
|
+
end
|
18
|
+
|
19
|
+
# @return [String]
|
20
|
+
def application_stereotype_name
|
21
|
+
stereotype_namespace_module.name.demodulize
|
22
|
+
end
|
23
|
+
|
24
|
+
# @return [Module]
|
25
|
+
def stereotype_namespace_module
|
26
|
+
module_parent.module_parent
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def stereotype_namespace_module
|
31
|
+
self.class.stereotype_namespace_module
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_cli/runner_with/subcommands'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module With
|
8
|
+
module ExtraSubcommands
|
9
|
+
# @return [Hash<String, EacCli::Runner>]
|
10
|
+
def extra_available_subcommands
|
11
|
+
extra_available_subcommands_from_runners_module
|
12
|
+
end
|
13
|
+
|
14
|
+
# @return [Hash<String, EacCli::Runner>]
|
15
|
+
def extra_available_subcommands_from_runners_module
|
16
|
+
self.class.ancestors.reverse.inject({}) do |a, e|
|
17
|
+
a.merge(RunnersFromModule.new(e).result)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
class RunnersFromModule
|
22
|
+
enable_simple_cache
|
23
|
+
common_constructor :the_module
|
24
|
+
|
25
|
+
# @return [Hash<String, EacCli::Runner>]
|
26
|
+
def result
|
27
|
+
return {} if runners_module.blank?
|
28
|
+
|
29
|
+
::EacCli::RunnerWith::Subcommands.subcommands_from_module(runners_module)
|
30
|
+
end
|
31
|
+
|
32
|
+
def runners_module_uncached
|
33
|
+
return nil if the_module.module_parent.blank?
|
34
|
+
|
35
|
+
begin
|
36
|
+
the_module.module_parent.const_get('Runners')
|
37
|
+
rescue ::NameError
|
38
|
+
nil
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: avm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.33.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eduardo H. Bogoni
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-08-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: eac_cli
|
@@ -36,14 +36,14 @@ dependencies:
|
|
36
36
|
requirements:
|
37
37
|
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: '0.
|
39
|
+
version: '0.10'
|
40
40
|
type: :runtime
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: '0.
|
46
|
+
version: '0.10'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: eac_docker
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -78,14 +78,14 @@ dependencies:
|
|
78
78
|
requirements:
|
79
79
|
- - "~>"
|
80
80
|
- !ruby/object:Gem::Version
|
81
|
-
version: '0.
|
81
|
+
version: '0.97'
|
82
82
|
type: :runtime
|
83
83
|
prerelease: false
|
84
84
|
version_requirements: !ruby/object:Gem::Requirement
|
85
85
|
requirements:
|
86
86
|
- - "~>"
|
87
87
|
- !ruby/object:Gem::Version
|
88
|
-
version: '0.
|
88
|
+
version: '0.97'
|
89
89
|
- !ruby/object:Gem::Dependency
|
90
90
|
name: eac_templates
|
91
91
|
requirement: !ruby/object:Gem::Requirement
|
@@ -213,15 +213,20 @@ files:
|
|
213
213
|
- lib/avm/docker/container.rb
|
214
214
|
- lib/avm/docker/image.rb
|
215
215
|
- lib/avm/docker/runner.rb
|
216
|
+
- lib/avm/entries.rb
|
217
|
+
- lib/avm/entries/auto_values.rb
|
218
|
+
- lib/avm/entries/auto_values/entry.rb
|
219
|
+
- lib/avm/entries/base.rb
|
220
|
+
- lib/avm/entries/entry.rb
|
216
221
|
- lib/avm/executables.rb
|
217
222
|
- lib/avm/instances.rb
|
218
223
|
- lib/avm/instances/base.rb
|
219
224
|
- lib/avm/instances/base/auto_values.rb
|
220
|
-
- lib/avm/instances/base/auto_values/access.rb
|
221
225
|
- lib/avm/instances/base/auto_values/admin.rb
|
222
226
|
- lib/avm/instances/base/auto_values/data.rb
|
223
227
|
- lib/avm/instances/base/auto_values/database.rb
|
224
228
|
- lib/avm/instances/base/auto_values/filesystem.rb
|
229
|
+
- lib/avm/instances/base/auto_values/install.rb
|
225
230
|
- lib/avm/instances/base/auto_values/mailer.rb
|
226
231
|
- lib/avm/instances/base/auto_values/ruby.rb
|
227
232
|
- lib/avm/instances/base/auto_values/source.rb
|
@@ -230,8 +235,6 @@ files:
|
|
230
235
|
- lib/avm/instances/base/dockerizable.rb
|
231
236
|
- lib/avm/instances/base/entry_keys.rb
|
232
237
|
- lib/avm/instances/docker_image.rb
|
233
|
-
- lib/avm/instances/entries.rb
|
234
|
-
- lib/avm/instances/entry.rb
|
235
238
|
- lib/avm/instances/entry_keys.rb
|
236
239
|
- lib/avm/instances/runner.rb
|
237
240
|
- lib/avm/jobs.rb
|
@@ -288,8 +291,8 @@ files:
|
|
288
291
|
- lib/avm/sync.rb
|
289
292
|
- lib/avm/version.rb
|
290
293
|
- lib/avm/version_number.rb
|
291
|
-
- lib/avm/
|
292
|
-
- lib/avm/
|
294
|
+
- lib/avm/with/application_stereotype.rb
|
295
|
+
- lib/avm/with/extra_subcommands.rb
|
293
296
|
homepage:
|
294
297
|
licenses: []
|
295
298
|
metadata: {}
|
@@ -1,40 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Avm
|
4
|
-
module Instances
|
5
|
-
class Base
|
6
|
-
module AutoValues
|
7
|
-
module Access
|
8
|
-
def auto_access
|
9
|
-
read_entry_optional('ssh.url').present? ? 'ssh' : 'local'
|
10
|
-
end
|
11
|
-
|
12
|
-
def auto_ssh_hostname
|
13
|
-
inherited_entry_value(::Avm::Instances::EntryKeys::HOST_ID, 'ssh.hostname')
|
14
|
-
end
|
15
|
-
|
16
|
-
def auto_ssh_port
|
17
|
-
inherited_entry_value(::Avm::Instances::EntryKeys::HOST_ID, 'ssh.port') || 22
|
18
|
-
end
|
19
|
-
|
20
|
-
def auto_ssh_username
|
21
|
-
inherited_entry_value(::Avm::Instances::EntryKeys::HOST_ID, 'ssh.username')
|
22
|
-
end
|
23
|
-
|
24
|
-
def auto_ssh_url
|
25
|
-
inherited_entry_value(::Avm::Instances::EntryKeys::HOST_ID, 'ssh.url') ||
|
26
|
-
auto_ssh_url_by_parts
|
27
|
-
end
|
28
|
-
|
29
|
-
def auto_ssh_url_by_parts
|
30
|
-
read_entry_optional('ssh.hostname').if_present do |a|
|
31
|
-
a = read_entry_optional('ssh.username').if_present(a) { |v| "#{v}@#{a}" }
|
32
|
-
a = read_entry_optional('ssh.port').if_present(a) { |v| "#{a}:#{v}" }
|
33
|
-
"ssh://#{a}"
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'eac_ruby_utils/core_ext'
|
4
|
-
|
5
|
-
module Avm
|
6
|
-
module WithApplicationStereotype
|
7
|
-
common_concern do
|
8
|
-
include ClassMethods
|
9
|
-
end
|
10
|
-
|
11
|
-
module ClassMethods
|
12
|
-
# @return [Avm::ApplicationStereotype::Base]
|
13
|
-
def application_stereotype
|
14
|
-
@application_stereotype ||=
|
15
|
-
::Avm::Registry.application_stereotypes.detect(application_stereotype_name)
|
16
|
-
end
|
17
|
-
|
18
|
-
# @return [String]
|
19
|
-
def application_stereotype_name
|
20
|
-
stereotype_namespace_module.name.demodulize
|
21
|
-
end
|
22
|
-
|
23
|
-
# @return [Module]
|
24
|
-
def stereotype_namespace_module
|
25
|
-
module_parent.module_parent
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
def stereotype_namespace_module
|
30
|
-
self.class.stereotype_namespace_module
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'eac_cli/runner_with/subcommands'
|
4
|
-
require 'eac_ruby_utils/core_ext'
|
5
|
-
|
6
|
-
module Avm
|
7
|
-
module WithDynamicRunners
|
8
|
-
# @return [Hash<String, EacCli::Runner>]
|
9
|
-
def extra_available_subcommands
|
10
|
-
extra_available_subcommands_from_runners_module
|
11
|
-
end
|
12
|
-
|
13
|
-
# @return [Hash<String, EacCli::Runner>]
|
14
|
-
def extra_available_subcommands_from_runners_module
|
15
|
-
self.class.ancestors.reverse.inject({}) do |a, e|
|
16
|
-
a.merge(RunnersFromModule.new(e).result)
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
class RunnersFromModule
|
21
|
-
enable_simple_cache
|
22
|
-
common_constructor :the_module
|
23
|
-
|
24
|
-
# @return [Hash<String, EacCli::Runner>]
|
25
|
-
def result
|
26
|
-
return {} if runners_module.blank?
|
27
|
-
|
28
|
-
::EacCli::RunnerWith::Subcommands.subcommands_from_module(runners_module)
|
29
|
-
end
|
30
|
-
|
31
|
-
def runners_module_uncached
|
32
|
-
return nil if the_module.module_parent.blank?
|
33
|
-
|
34
|
-
begin
|
35
|
-
the_module.module_parent.const_get('Runners')
|
36
|
-
rescue ::NameError
|
37
|
-
nil
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|