dapp 0.27.2 → 0.27.3

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
  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