dapp 0.11.0 → 0.12.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/config/en/net_status.yml +36 -4
- data/lib/dapp.rb +84 -36
- data/lib/dapp/cli.rb +3 -2
- data/lib/dapp/cli/command/base.rb +69 -0
- data/lib/dapp/config/config.rb +17 -0
- data/lib/dapp/config/directive/base.rb +90 -3
- data/lib/dapp/dapp.rb +6 -14
- data/lib/dapp/dapp/dappfile.rb +20 -27
- data/lib/dapp/dapp/deps/base.rb +2 -2
- data/lib/dapp/dapp/lock.rb +1 -1
- data/lib/dapp/dapp/logging/base.rb +11 -7
- data/lib/dapp/dapp/logging/process.rb +4 -2
- data/lib/dapp/dapp/shellout/base.rb +2 -2
- data/lib/dapp/dapp/ssh_agent.rb +2 -2
- data/lib/dapp/deployment.rb +1 -0
- data/lib/dapp/deployment/app.rb +120 -0
- data/lib/dapp/deployment/cli/cli.rb +1 -0
- data/lib/dapp/deployment/cli/command/base.rb +14 -0
- data/lib/dapp/deployment/cli/command/deployment.rb +21 -0
- data/lib/dapp/deployment/cli/command/deployment/apply.rb +26 -0
- data/lib/dapp/deployment/cli/command/deployment/minikube_setup.rb +13 -0
- data/lib/dapp/deployment/cli/command/deployment/mrproper.rb +13 -0
- data/lib/dapp/deployment/cli/command/deployment/secret_generate.rb +13 -0
- data/lib/dapp/deployment/cli/command/deployment/secret_key_generate.rb +13 -0
- data/lib/dapp/deployment/config/config.rb +46 -0
- data/lib/dapp/deployment/config/directive/app.rb +28 -0
- data/lib/dapp/deployment/config/directive/app/instance_methods.rb +51 -0
- data/lib/dapp/deployment/config/directive/base.rb +13 -0
- data/lib/dapp/deployment/config/directive/deployment.rb +11 -0
- data/lib/dapp/deployment/config/directive/expose.rb +68 -0
- data/lib/dapp/deployment/config/directive/group.rb +27 -0
- data/lib/dapp/deployment/config/directive/job.rb +28 -0
- data/lib/dapp/deployment/config/directive/mod/group.rb +22 -0
- data/lib/dapp/deployment/config/directive/mod/jobs.rb +26 -0
- data/lib/dapp/deployment/config/directive/namespace.rb +26 -0
- data/lib/dapp/deployment/config/directive/namespace/instance_methods.rb +37 -0
- data/lib/dapp/deployment/core_ext/hash.rb +19 -0
- data/lib/dapp/deployment/dapp/command/apply.rb +83 -0
- data/lib/dapp/deployment/dapp/command/common.rb +17 -0
- data/lib/dapp/deployment/dapp/command/minikube_setup.rb +393 -0
- data/lib/dapp/deployment/dapp/command/mrproper.rb +12 -0
- data/lib/dapp/deployment/dapp/command/secret_generate.rb +17 -0
- data/lib/dapp/deployment/dapp/command/secret_key_generate.rb +13 -0
- data/lib/dapp/deployment/dapp/dapp.rb +18 -0
- data/lib/dapp/deployment/dapp/dappfile.rb +23 -0
- data/lib/dapp/deployment/deployment.rb +46 -0
- data/lib/dapp/deployment/error/app.rb +7 -0
- data/lib/dapp/deployment/error/base.rb +7 -0
- data/lib/dapp/deployment/error/command.rb +7 -0
- data/lib/dapp/deployment/error/config.rb +7 -0
- data/lib/dapp/deployment/error/deployment.rb +7 -0
- data/lib/dapp/deployment/error/kubernetes.rb +7 -0
- data/lib/dapp/deployment/kube_app.rb +277 -0
- data/lib/dapp/deployment/kube_base.rb +97 -0
- data/lib/dapp/deployment/kube_deployment.rb +51 -0
- data/lib/dapp/deployment/kubernetes.rb +174 -0
- data/lib/dapp/deployment/kubernetes/error.rb +20 -0
- data/lib/dapp/deployment/mod/jobs.rb +37 -0
- data/lib/dapp/deployment/mod/namespace.rb +58 -0
- data/lib/dapp/deployment/mod/system_environments.rb +30 -0
- data/lib/dapp/deployment/secret.rb +93 -0
- data/lib/dapp/dimg/artifact.rb +1 -1
- data/lib/dapp/dimg/build/stage/artifact_default.rb +35 -23
- data/lib/dapp/dimg/build/stage/base.rb +1 -1
- data/lib/dapp/dimg/build/stage/before_setup.rb +0 -2
- data/lib/dapp/dimg/build/stage/build_artifact.rb +0 -2
- data/lib/dapp/dimg/build/stage/ga_latest_patch.rb +2 -2
- data/lib/dapp/dimg/build/stage/install/install.rb +0 -1
- data/lib/dapp/dimg/build/stage/setup/setup.rb +0 -1
- data/lib/dapp/dimg/cli/cli.rb +1 -1
- data/lib/dapp/dimg/cli/command/base.rb +14 -0
- data/lib/dapp/dimg/cli/{dimg.rb → command/dimg.rb} +5 -7
- data/lib/dapp/dimg/cli/{bp.rb → command/dimg/bp.rb} +3 -3
- data/lib/dapp/dimg/cli/{build.rb → command/dimg/build.rb} +3 -3
- data/lib/dapp/dimg/cli/{build_context.rb → command/dimg/build_context.rb} +3 -3
- data/lib/dapp/dimg/cli/{build_context → command/dimg/build_context}/export.rb +4 -4
- data/lib/dapp/dimg/cli/{build_context → command/dimg/build_context}/import.rb +4 -4
- data/lib/dapp/dimg/cli/{cleanup.rb → command/dimg/cleanup.rb} +3 -3
- data/lib/dapp/dimg/cli/{list.rb → command/dimg/list.rb} +3 -3
- data/lib/dapp/dimg/cli/{mrproper.rb → command/dimg/mrproper.rb} +4 -4
- data/lib/dapp/dimg/cli/{push.rb → command/dimg/push.rb} +5 -5
- data/lib/dapp/dimg/cli/{run.rb → command/dimg/run.rb} +8 -8
- data/lib/dapp/dimg/cli/{spush.rb → command/dimg/spush.rb} +4 -4
- data/lib/dapp/dimg/cli/{stage_image.rb → command/dimg/stage_image.rb} +3 -3
- data/lib/dapp/dimg/cli/{stages.rb → command/dimg/stages.rb} +3 -3
- data/lib/dapp/dimg/cli/{stages → command/dimg/stages}/cleanup_local.rb +6 -6
- data/lib/dapp/dimg/cli/{stages → command/dimg/stages}/cleanup_repo.rb +5 -5
- data/lib/dapp/dimg/cli/{stages → command/dimg/stages}/flush_local.rb +5 -5
- data/lib/dapp/dimg/cli/{stages → command/dimg/stages}/flush_repo.rb +6 -6
- data/lib/dapp/dimg/cli/{stages → command/dimg/stages}/pull.rb +6 -6
- data/lib/dapp/dimg/cli/{stages → command/dimg/stages}/push.rb +6 -6
- data/lib/dapp/dimg/cli/{tag.rb → command/dimg/tag.rb} +6 -6
- data/lib/dapp/dimg/config/config.rb +20 -0
- data/lib/dapp/dimg/config/directive/artifact_dimg.rb +19 -0
- data/lib/dapp/dimg/config/directive/artifact_group.rb +45 -0
- data/lib/dapp/dimg/config/directive/dimg.rb +36 -0
- data/lib/dapp/dimg/config/directive/dimg/instance_methods.rb +149 -0
- data/lib/dapp/dimg/config/directive/dimg/validation.rb +128 -0
- data/lib/dapp/dimg/config/directive/dimg_group.rb +64 -0
- data/lib/dapp/dimg/config/directive/dimg_group_base.rb +46 -0
- data/lib/dapp/dimg/config/directive/docker/dimg.rb +4 -4
- data/lib/dapp/dimg/config/directive/shell/dimg.rb +1 -1
- data/lib/dapp/dimg/dapp/command/bp.rb +4 -4
- data/lib/dapp/dimg/dapp/command/build.rb +2 -2
- data/lib/dapp/dimg/dapp/command/build_context/common.rb +2 -2
- data/lib/dapp/dimg/dapp/command/build_context/export.rb +1 -1
- data/lib/dapp/dimg/dapp/command/build_context/import.rb +1 -1
- data/lib/dapp/dimg/dapp/command/cleanup.rb +1 -1
- data/lib/dapp/dimg/dapp/command/common.rb +19 -4
- data/lib/dapp/dimg/dapp/command/list.rb +1 -1
- data/lib/dapp/dimg/dapp/command/mrproper.rb +3 -3
- data/lib/dapp/dimg/dapp/command/push.rb +6 -5
- data/lib/dapp/dimg/dapp/command/run.rb +1 -1
- data/lib/dapp/dimg/dapp/command/spush.rb +4 -3
- data/lib/dapp/dimg/dapp/command/stage_image.rb +2 -2
- data/lib/dapp/dimg/dapp/command/stages/cleanup_local.rb +1 -1
- data/lib/dapp/dimg/dapp/command/stages/cleanup_repo.rb +3 -3
- data/lib/dapp/dimg/dapp/command/stages/common.rb +4 -4
- data/lib/dapp/dimg/dapp/command/stages/flush_local.rb +1 -1
- data/lib/dapp/dimg/dapp/command/stages/flush_repo.rb +1 -1
- data/lib/dapp/dimg/dapp/command/stages/pull.rb +5 -4
- data/lib/dapp/dimg/dapp/command/stages/push.rb +4 -3
- data/lib/dapp/dimg/dapp/command/tag.rb +3 -2
- data/lib/dapp/dimg/dapp/dapp.rb +33 -0
- data/lib/dapp/dimg/dapp/dappfile.rb +25 -0
- data/lib/dapp/dimg/dimg.rb +3 -3
- data/lib/dapp/dimg/dimg/path.rb +1 -1
- data/lib/dapp/dimg/dimg/stages.rb +1 -1
- data/lib/dapp/dimg/dimg/tags.rb +5 -5
- data/lib/dapp/dimg/docker_registry.rb +3 -7
- data/lib/dapp/dimg/git_artifact.rb +30 -14
- data/lib/dapp/dimg/git_repo/base.rb +13 -1
- data/lib/dapp/dimg/git_repo/own.rb +9 -1
- data/lib/dapp/dimg/image/docker.rb +9 -3
- data/lib/dapp/helper/cli.rb +3 -1
- data/lib/dapp/helper/net_status.rb +5 -1
- data/lib/dapp/helper/trivia.rb +1 -1
- data/lib/dapp/version.rb +2 -2
- metadata +84 -38
- data/lib/dapp/cli/base.rb +0 -63
- data/lib/dapp/config/base.rb +0 -54
- data/lib/dapp/dimg/build/stage/mod/git_artifact_dependencies.rb +0 -23
- data/lib/dapp/dimg/cli/base.rb +0 -16
- data/lib/dapp/dimg/config/artifact_dimg.rb +0 -17
- data/lib/dapp/dimg/config/artifact_group.rb +0 -43
- data/lib/dapp/dimg/config/base.rb +0 -7
- data/lib/dapp/dimg/config/dimg.rb +0 -24
- data/lib/dapp/dimg/config/dimg/instance_methods.rb +0 -179
- data/lib/dapp/dimg/config/dimg/validation.rb +0 -126
- data/lib/dapp/dimg/config/dimg_group.rb +0 -61
- data/lib/dapp/dimg/config/dimg_group_base.rb +0 -54
- data/lib/dapp/dimg/config/dimg_group_main.rb +0 -22
- data/lib/dapp/dimg/dapp/command.rb +0 -21
@@ -1,24 +0,0 @@
|
|
1
|
-
module Dapp
|
2
|
-
module Dimg
|
3
|
-
module Config
|
4
|
-
class Dimg < Base
|
5
|
-
include Validation
|
6
|
-
include InstanceMethods
|
7
|
-
|
8
|
-
attr_reader :_name
|
9
|
-
|
10
|
-
def initialize(name, dapp:)
|
11
|
-
self._name = name
|
12
|
-
super(dapp: dapp)
|
13
|
-
end
|
14
|
-
|
15
|
-
def _name=(name)
|
16
|
-
return if name.nil?
|
17
|
-
reg = '^[[[:alnum:]]_.-]*$'
|
18
|
-
raise Error::Config, code: :dimg_name_incorrect, data: { name: name, reg: reg } unless name =~ /#{reg}/
|
19
|
-
@_name = name
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,179 +0,0 @@
|
|
1
|
-
module Dapp
|
2
|
-
module Dimg
|
3
|
-
module Config
|
4
|
-
class Dimg < Base
|
5
|
-
module InstanceMethods
|
6
|
-
attr_reader :_builder
|
7
|
-
attr_reader :_chef, :_shell, :_docker, :_git_artifact, :_mount, :_artifact
|
8
|
-
attr_reader :_artifact_groups
|
9
|
-
|
10
|
-
def dev_mode
|
11
|
-
@_dev_mode = true
|
12
|
-
end
|
13
|
-
|
14
|
-
def chef(&blk)
|
15
|
-
builder(:chef)
|
16
|
-
directive_eval(_chef, &blk)
|
17
|
-
end
|
18
|
-
|
19
|
-
def shell(&blk)
|
20
|
-
builder(:shell)
|
21
|
-
directive_eval(_shell, &blk)
|
22
|
-
end
|
23
|
-
|
24
|
-
def docker(&blk)
|
25
|
-
directive_eval(_docker, &blk)
|
26
|
-
end
|
27
|
-
|
28
|
-
def artifact(&blk)
|
29
|
-
pass_to_custom(ArtifactGroup.new(dapp: dapp), :clone_to_artifact).tap do |artifact_group|
|
30
|
-
_artifact_groups << directive_eval(artifact_group, &blk)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
def git(url = nil, &blk)
|
35
|
-
type = url.nil? ? :local : :remote
|
36
|
-
_git_artifact.public_send(type, url.to_s, &blk)
|
37
|
-
end
|
38
|
-
|
39
|
-
def mount(to, &blk)
|
40
|
-
Directive::Mount.new(to, dapp: dapp, &blk).tap do |mount|
|
41
|
-
_mount << mount
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
def _dev_mode
|
46
|
-
!!@_dev_mode
|
47
|
-
end
|
48
|
-
|
49
|
-
def _builder
|
50
|
-
@_builder || :none
|
51
|
-
end
|
52
|
-
|
53
|
-
def _chef
|
54
|
-
@_chef ||= Directive::Chef.new(dapp: dapp)
|
55
|
-
end
|
56
|
-
|
57
|
-
def _shell
|
58
|
-
@_shell ||= Directive::Shell::Dimg.new(dapp: dapp)
|
59
|
-
end
|
60
|
-
|
61
|
-
def _docker
|
62
|
-
@_docker ||= Directive::Docker::Dimg.new(dapp: dapp)
|
63
|
-
end
|
64
|
-
|
65
|
-
def _mount
|
66
|
-
@_mount ||= []
|
67
|
-
end
|
68
|
-
|
69
|
-
def _git_artifact
|
70
|
-
@_git_artifact ||= GitArtifact.new(dapp: dapp)
|
71
|
-
end
|
72
|
-
|
73
|
-
[:build_dir, :tmp_dir].each do |mount_type|
|
74
|
-
define_method "_#{mount_type}_mount" do
|
75
|
-
_mount.select { |m| m._type == mount_type }
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
def _artifact_groups
|
80
|
-
@_artifact_groups ||= []
|
81
|
-
end
|
82
|
-
|
83
|
-
def _artifact
|
84
|
-
_artifact_groups.map(&:_export).flatten
|
85
|
-
end
|
86
|
-
|
87
|
-
[:before, :after].each do |order|
|
88
|
-
[:setup, :install].each do |stage|
|
89
|
-
define_method "_#{order}_#{stage}_artifact" do
|
90
|
-
_artifact.select do |art|
|
91
|
-
art.public_send("_#{order}") == stage
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
def _import_artifact
|
98
|
-
_artifact.select(&:not_associated?)
|
99
|
-
end
|
100
|
-
|
101
|
-
class GitArtifact < Directive::Base
|
102
|
-
attr_reader :_local, :_remote
|
103
|
-
|
104
|
-
def initialize(**kwargs, &blk)
|
105
|
-
@_local = []
|
106
|
-
@_remote = []
|
107
|
-
|
108
|
-
super(**kwargs, &blk)
|
109
|
-
end
|
110
|
-
|
111
|
-
def local(_, &blk)
|
112
|
-
Directive::GitArtifactLocal.new(dapp: dapp, &blk).tap do |git|
|
113
|
-
@_local << git
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
def remote(repo_url, &blk)
|
118
|
-
Directive::GitArtifactRemote.new(repo_url, dapp: dapp, &blk).tap do |git|
|
119
|
-
@_remote << git
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
|
-
def _local
|
124
|
-
@_local.map(&:_export).flatten
|
125
|
-
end
|
126
|
-
|
127
|
-
def _remote
|
128
|
-
@_remote.map(&:_export).flatten
|
129
|
-
end
|
130
|
-
|
131
|
-
def empty?
|
132
|
-
(_local + _remote).empty?
|
133
|
-
end
|
134
|
-
|
135
|
-
def validate!
|
136
|
-
(_local + _remote).each(&:validate!)
|
137
|
-
end
|
138
|
-
end
|
139
|
-
|
140
|
-
protected
|
141
|
-
|
142
|
-
def builder(type)
|
143
|
-
@_builder = type if _builder == :none
|
144
|
-
raise Error::Config, code: :builder_type_conflict unless @_builder == type
|
145
|
-
end
|
146
|
-
|
147
|
-
def pass_to_default(dimg)
|
148
|
-
pass_to_custom(dimg, :clone)
|
149
|
-
end
|
150
|
-
|
151
|
-
def pass_to_custom(obj, clone_method)
|
152
|
-
passed_directives.each do |directive|
|
153
|
-
next if (variable = instance_variable_get(directive)).nil?
|
154
|
-
|
155
|
-
obj.instance_variable_set(directive, begin
|
156
|
-
case variable
|
157
|
-
when Directive::Base, GitArtifact then variable.public_send(clone_method)
|
158
|
-
when Symbol then variable
|
159
|
-
when Array then variable.dup
|
160
|
-
when TrueClass, FalseClass then variable
|
161
|
-
else
|
162
|
-
raise
|
163
|
-
end
|
164
|
-
end)
|
165
|
-
end
|
166
|
-
obj
|
167
|
-
end
|
168
|
-
|
169
|
-
def passed_directives
|
170
|
-
[:@_chef, :@_shell, :@_docker,
|
171
|
-
:@_git_artifact, :@_mount,
|
172
|
-
:@_artifact_groups, :@_builder, :@_dev_mode]
|
173
|
-
end
|
174
|
-
end # InstanceMethods
|
175
|
-
# rubocop:enable Metrics/ModuleLength
|
176
|
-
end # Dimg
|
177
|
-
end # Config
|
178
|
-
end # Dimg
|
179
|
-
end # Dapp
|
@@ -1,126 +0,0 @@
|
|
1
|
-
module Dapp
|
2
|
-
module Dimg
|
3
|
-
module Config
|
4
|
-
class Dimg < Base
|
5
|
-
module Validation
|
6
|
-
def validate!
|
7
|
-
directives_validate!
|
8
|
-
validate_scratch!
|
9
|
-
validate_artifacts!
|
10
|
-
validate_artifacts_artifacts!
|
11
|
-
end
|
12
|
-
|
13
|
-
protected
|
14
|
-
|
15
|
-
def validate_scratch!
|
16
|
-
if _docker._from.nil?
|
17
|
-
validate_scratch_directives!
|
18
|
-
validate_scratch_artifacts!
|
19
|
-
else
|
20
|
-
raise Error::Config, code: :stage_artifact_not_associated unless _import_artifact.empty?
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def directives_validate!
|
25
|
-
passed_directives.each do |v|
|
26
|
-
next if (value = instance_variable_get(v)).nil?
|
27
|
-
Array(value).each do |elm|
|
28
|
-
elm.validate! if elm.respond_to?(:validate!)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def validate_scratch_directives!
|
34
|
-
directives = [[:_shell, :shell], [:_chef, :chef], [:_git_artifact, :git],
|
35
|
-
[:_tmp_dir_mount, :mount], [:_build_dir_mount, :mount]]
|
36
|
-
directives.each do |name, user_name|
|
37
|
-
raise Error::Config,
|
38
|
-
code: :scratch_unsupported_directive,
|
39
|
-
data: { directive: user_name } unless public_send(name).empty?
|
40
|
-
end
|
41
|
-
|
42
|
-
docker_directives = [:_expose, :_env, :_cmd, :_onbuild, :_workdir, :_user, :_entrypoint]
|
43
|
-
docker_directives.each do |directive|
|
44
|
-
value = _docker.public_send(directive)
|
45
|
-
raise Error::Config,
|
46
|
-
code: :scratch_unsupported_directive,
|
47
|
-
data: { directive: "docker.#{directive}" } unless value.nil? || value.empty?
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
def validate_scratch_artifacts!
|
52
|
-
raise Error::Config, code: :scratch_artifact_associated unless _associated_artifacts.empty?
|
53
|
-
raise Error::Config, code: :scratch_artifact_required if _import_artifact.empty?
|
54
|
-
_import_artifact.each do |artifact|
|
55
|
-
raise Error::Config, code: :scratch_artifact_docker_from if artifact._config._docker._from.nil?
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
def validate_artifacts_artifacts!
|
60
|
-
_artifact.each { |artifact_dimg| artifact_dimg._config.validate! }
|
61
|
-
end
|
62
|
-
|
63
|
-
def validate_artifacts!
|
64
|
-
artifacts = validate_artifact_format(validated_artifacts)
|
65
|
-
loop do
|
66
|
-
break if artifacts.empty?
|
67
|
-
verifiable_artifact = artifacts.shift
|
68
|
-
artifacts.select { |a| a[:to] == verifiable_artifact[:to] }.each do |artifact|
|
69
|
-
next if verifiable_artifact[:index] == artifact[:index]
|
70
|
-
validate_artifact!(verifiable_artifact, artifact)
|
71
|
-
validate_artifact!(artifact, verifiable_artifact)
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
def validate_artifact_format(artifacts)
|
77
|
-
artifacts.map do |a|
|
78
|
-
path_format = proc { |path| File.expand_path(File.join('/', path, '/'))[1..-1] }
|
79
|
-
|
80
|
-
path_format.call(a._to) =~ %r{^([^\/]*)\/?(.*)$}
|
81
|
-
to = Regexp.last_match(1)
|
82
|
-
include_paths = a._include_paths.dup
|
83
|
-
include_paths << Regexp.last_match(2) unless Regexp.last_match(2).empty?
|
84
|
-
exclude_paths = a._exclude_paths.dup
|
85
|
-
|
86
|
-
{
|
87
|
-
index: artifacts.index(a),
|
88
|
-
to: to,
|
89
|
-
include_paths: include_paths.map(&path_format),
|
90
|
-
exclude_paths: exclude_paths.map(&path_format)
|
91
|
-
}
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
def validate_artifact!(verifiable_artifact, artifact)
|
96
|
-
verifiable_artifact[:include_paths].each do |verifiable_path|
|
97
|
-
potential_conflicts = artifact[:include_paths].select { |path| path.start_with?(verifiable_path) }
|
98
|
-
validate_artifact_path!(verifiable_artifact, potential_conflicts)
|
99
|
-
end.empty? && verifiable_artifact[:exclude_paths].empty? && raise(Error::Config, code: :artifact_conflict)
|
100
|
-
validate_artifact_path!(verifiable_artifact, artifact[:include_paths]) if verifiable_artifact[:include_paths].empty?
|
101
|
-
end
|
102
|
-
|
103
|
-
def validate_artifact_path!(verifiable_artifact, potential_conflicts)
|
104
|
-
potential_conflicts.all? do |path|
|
105
|
-
loop do
|
106
|
-
break if verifiable_artifact[:exclude_paths].include?(path) || ((path = File.dirname(path)) == '.')
|
107
|
-
end
|
108
|
-
verifiable_artifact[:exclude_paths].include?(path)
|
109
|
-
end.tap { |res| res || raise(Error::Config, code: :artifact_conflict) }
|
110
|
-
end
|
111
|
-
|
112
|
-
def _associated_artifacts
|
113
|
-
_artifact.select do |art|
|
114
|
-
!(art._before.nil? && art._after.nil?)
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
|
-
def validated_artifacts
|
119
|
-
_artifact + _git_artifact._local + _git_artifact._remote
|
120
|
-
end
|
121
|
-
end # Validation
|
122
|
-
# rubocop:enable Metrics/ModuleLength
|
123
|
-
end # Dimg
|
124
|
-
end # Config
|
125
|
-
end # Dimg
|
126
|
-
end # Dapp
|
@@ -1,61 +0,0 @@
|
|
1
|
-
module Dapp
|
2
|
-
module Dimg
|
3
|
-
module Config
|
4
|
-
class DimgGroup < DimgGroupBase
|
5
|
-
include Dimg::InstanceMethods
|
6
|
-
|
7
|
-
def chef(&blk)
|
8
|
-
check_dimg_directive_order(:chef)
|
9
|
-
super
|
10
|
-
end
|
11
|
-
|
12
|
-
def shell(&blk)
|
13
|
-
check_dimg_directive_order(:shell)
|
14
|
-
super
|
15
|
-
end
|
16
|
-
|
17
|
-
def docker(&blk)
|
18
|
-
check_dimg_directive_order(:docker)
|
19
|
-
super
|
20
|
-
end
|
21
|
-
|
22
|
-
def artifact(&blk)
|
23
|
-
check_dimg_group_directive_order(:artifact)
|
24
|
-
super
|
25
|
-
end
|
26
|
-
|
27
|
-
def git(url = nil, &blk)
|
28
|
-
check_dimg_directive_order(:git)
|
29
|
-
super
|
30
|
-
end
|
31
|
-
|
32
|
-
def mount(to, &blk)
|
33
|
-
check_dimg_directive_order(:mount)
|
34
|
-
super
|
35
|
-
end
|
36
|
-
|
37
|
-
protected
|
38
|
-
|
39
|
-
def before_dimg_eval(dimg)
|
40
|
-
pass_to_default(dimg)
|
41
|
-
end
|
42
|
-
|
43
|
-
def before_dimg_group_eval(dimg_group)
|
44
|
-
pass_to_default(dimg_group)
|
45
|
-
end
|
46
|
-
|
47
|
-
def check_dimg_directive_order(directive)
|
48
|
-
dapp.log_config_warning(desc: { code: 'wrong_using_base_directive',
|
49
|
-
data: { directive: directive },
|
50
|
-
context: 'warning' }) if _dimg.any? || _dimg_group.any? || _artifact.any?
|
51
|
-
end
|
52
|
-
|
53
|
-
def check_dimg_group_directive_order(directive)
|
54
|
-
dapp.log_config_warning(desc: { code: 'wrong_using_directive',
|
55
|
-
data: { directive: directive },
|
56
|
-
context: 'warning' }) if _dimg.any? || _dimg_group.any?
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
@@ -1,54 +0,0 @@
|
|
1
|
-
module Dapp
|
2
|
-
module Dimg
|
3
|
-
module Config
|
4
|
-
class DimgGroupBase < Base
|
5
|
-
attr_reader :_dimg_group
|
6
|
-
|
7
|
-
def initialize(dapp:)
|
8
|
-
@_dimg = []
|
9
|
-
@_dimg_group = []
|
10
|
-
|
11
|
-
super(dapp: dapp)
|
12
|
-
end
|
13
|
-
|
14
|
-
def dev_mode
|
15
|
-
@_dev_mode = true
|
16
|
-
end
|
17
|
-
|
18
|
-
def dimg(name = nil, &blk)
|
19
|
-
Config::Dimg.new(name, dapp: dapp).tap do |dimg|
|
20
|
-
before_dimg_eval(dimg)
|
21
|
-
dimg.instance_eval(&blk) if block_given?
|
22
|
-
@_dimg << dimg
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
def dimg_group(&blk)
|
27
|
-
Config::DimgGroup.new(dapp: dapp).tap do |dimg_group|
|
28
|
-
before_dimg_group_eval(dimg_group)
|
29
|
-
dimg_group.instance_eval(&blk) if block_given?
|
30
|
-
@_dimg_group << dimg_group
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
def _dimg
|
35
|
-
(@_dimg + @_dimg_group.map(&:_dimg)).flatten
|
36
|
-
end
|
37
|
-
|
38
|
-
protected
|
39
|
-
|
40
|
-
def before_dimg_eval(dimg)
|
41
|
-
pass_to_default(dimg)
|
42
|
-
end
|
43
|
-
|
44
|
-
def before_dimg_group_eval(dimg_group)
|
45
|
-
pass_to_default(dimg_group)
|
46
|
-
end
|
47
|
-
|
48
|
-
def pass_to_default(obj)
|
49
|
-
obj.instance_variable_set(:@_dev_mode, @_dev_mode)
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|