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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b89b8d4526cea7d52e65da52a8f820d57b2c8b3d
4
- data.tar.gz: cf18d0448c6bb51ada30b15d38c3ace94d36196d
3
+ metadata.gz: 4131d8f9a16abec783b77dde8b67133d2195cf2a
4
+ data.tar.gz: 33983c730f2ca76db4ccb8fce001d29d75de1070
5
5
  SHA512:
6
- metadata.gz: f9366275d1b264accbb4b261d7571597d91b0a00a0dc23ae851f79071e80b3118d31debe6709ddcc896cae1a0c69d93451971da3f470299707476233972dd49c
7
- data.tar.gz: 676e2185ce05f47b0d2e85ac8a345f9a4df91bb90df4bf5fadc96ce5e1cac433aa2a05831b4268fb6c911a471eaeb5f94579ade04dcb1aa1c1feeee60d476ef3
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!"
@@ -14,7 +14,7 @@ module Dapp
14
14
  { ':minikube' => "localhost:5000/#{name}" }
15
15
  end
16
16
 
17
- def dimg_registry(repo)
17
+ def dimg_registry(repo = option_repo)
18
18
  validate_repo_name!(repo)
19
19
  ::Dapp::Dimg::DockerRegistry.new(repo)
20
20
  end
@@ -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
@@ -1,4 +1,4 @@
1
1
  module Dapp
2
- VERSION = "0.27.2"
2
+ VERSION = "0.27.3"
3
3
  BUILD_CACHE_VERSION = 28
4
4
  end
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.2
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-14 00:00:00.000000000 Z
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.6.11
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