dapp 0.27.2 → 0.27.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/config/en/common.yml +1 -0
- data/lib/dapp/dapp/command/common.rb +1 -1
- data/lib/dapp/dimg/dimg.rb +26 -0
- data/lib/dapp/dimg/docker_registry/base.rb +0 -10
- data/lib/dapp/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4131d8f9a16abec783b77dde8b67133d2195cf2a
|
4
|
+
data.tar.gz: 33983c730f2ca76db4ccb8fce001d29d75de1070
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 005d14ed32da6a142565bf95e2d9f32598ea5903d6d9a815078fb385830c3848e3623a4fe8b4caccc526188b90c11033580be3237766773ee471930a05caa55f
|
7
|
+
data.tar.gz: 5b2be0e66e1fd2a6801b9a05683f25ce21c75fef41af25e4558422c3bed8a9d20c30c54be54086b2f999838d3720db1eb12249a7d0c793352200d89c9c9b72d7
|
data/config/en/common.yml
CHANGED
@@ -48,6 +48,7 @@ en:
|
|
48
48
|
export: '[EXPORT]'
|
49
49
|
pull: '[PULL]'
|
50
50
|
tag: '[TAG]'
|
51
|
+
exist: '[EXIST]'
|
51
52
|
warning:
|
52
53
|
wrong_using_base_directive: "WARNING: Directive `%{directive}` has declared after dimg_group|dimg|artifact!"
|
53
54
|
wrong_using_directive: "WARNING: Directive `%{directive}` has declared after dimg_group|dimg!"
|
data/lib/dapp/dimg/dimg.rb
CHANGED
@@ -81,6 +81,12 @@ module Dapp
|
|
81
81
|
dapp.log_step_with_indent(tag_scheme_name) do
|
82
82
|
tags.each do |tag|
|
83
83
|
image_name = format(export_format, repo: repo, dimg_name: name, tag: tag)
|
84
|
+
|
85
|
+
if push && tag_should_not_be_pushed?(tag.to_s)
|
86
|
+
dapp.log_state(image_name, state: dapp.t(code: 'state.exist'))
|
87
|
+
next
|
88
|
+
end
|
89
|
+
|
84
90
|
export_base!(image_name, push: push) do
|
85
91
|
export_image = build_export_image!(image_name, scheme_name: tag_scheme_name)
|
86
92
|
if push
|
@@ -95,6 +101,26 @@ module Dapp
|
|
95
101
|
end
|
96
102
|
end
|
97
103
|
|
104
|
+
def tag_should_not_be_pushed?(tag)
|
105
|
+
return true unless registry_tags.include?(tag)
|
106
|
+
registry_tag_parent = registry.image_history(tag, name)['container_config']['Image']
|
107
|
+
registry_tag_parent == last_stage.image.built_id
|
108
|
+
end
|
109
|
+
|
110
|
+
def registry_tags
|
111
|
+
@registry_tags ||= begin
|
112
|
+
if name.nil?
|
113
|
+
registry.nameless_dimg_tags
|
114
|
+
else
|
115
|
+
registry.dimg_tags(name)
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
def registry
|
121
|
+
@registry ||= dapp.dimg_registry
|
122
|
+
end
|
123
|
+
|
98
124
|
def build_export_image!(image_name, scheme_name:)
|
99
125
|
Image::Dimg.image_by_name(name: image_name, from: last_stage.image, dapp: dapp).tap do |export_image|
|
100
126
|
export_image.add_service_change_label(:'dapp-tag-scheme' => scheme_name)
|
@@ -35,7 +35,6 @@ module Dapp
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def image_delete(tag)
|
38
|
-
image_blobs(tag).each { |hash| blob_delete(hash.values.first) }
|
39
38
|
api_request(repo_suffix, "/manifests/#{image_digest(tag)}",
|
40
39
|
method: :delete,
|
41
40
|
expects: [202, 404],
|
@@ -54,10 +53,6 @@ module Dapp
|
|
54
53
|
headers: { Accept: 'application/vnd.docker.distribution.manifest.v2+json' }).headers['Docker-Content-Digest']
|
55
54
|
end
|
56
55
|
|
57
|
-
def image_blobs(tag)
|
58
|
-
manifest_v1(tag)['fsLayers']
|
59
|
-
end
|
60
|
-
|
61
56
|
def manifest_v1(tag)
|
62
57
|
api_request(repo_suffix, "/manifests/#{tag}")
|
63
58
|
end
|
@@ -67,11 +62,6 @@ module Dapp
|
|
67
62
|
headers: { Accept: 'application/vnd.docker.distribution.manifest.v2+json' })
|
68
63
|
end
|
69
64
|
|
70
|
-
def blob_delete(id)
|
71
|
-
api_request(repo_suffix, "/blobs/#{id}",
|
72
|
-
method: :delete, expects: [202, 404])
|
73
|
-
end
|
74
|
-
|
75
65
|
def api_request(*uri, **options)
|
76
66
|
JSON.load(raw_api_request(*uri, **options).body)
|
77
67
|
end
|
data/lib/dapp/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dapp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.27.
|
4
|
+
version: 0.27.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dmitry Stolyarov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-03-
|
11
|
+
date: 2018-03-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mixlib-shellout
|
@@ -741,7 +741,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
741
741
|
version: 2.5.0
|
742
742
|
requirements: []
|
743
743
|
rubyforge_project:
|
744
|
-
rubygems_version: 2.
|
744
|
+
rubygems_version: 2.5.1
|
745
745
|
signing_key:
|
746
746
|
specification_version: 4
|
747
747
|
summary: Build docker packaged apps using chef or shell
|