picsolve_docker_builder 0.4.0 → 0.5.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5ec84ff2c54bd70531b955c0433b32fc7612a096
4
- data.tar.gz: 9721fdeccf7b27d7440119c40d3fc657e3b4b9e4
3
+ metadata.gz: de22e1ddc1a2ea198d0c73b3d7666ff4478e1ebd
4
+ data.tar.gz: 5081529443f27fc76d6cae03744a88b064129857
5
5
  SHA512:
6
- metadata.gz: 4673382c5b8cdd99de881ae5522f815b5021d3f4f30fecdc7bbe4511dd8fbc3b1846241ad881125f50787ca0437abcddcc420a3c7a275fb6c46199c98bb4c7df
7
- data.tar.gz: c14aa9c909bbf0927e9283ade875b24363b341b5d6a13a0e365971d95f38a26d51466176835d482beb0d3348cf314caf8c3d7b2b0fc5543c7fd61d638e4b3c1d
6
+ metadata.gz: b8f4cc5d83cd5677610d743262e9a4751e8165a06d76af80c73b8932eb1ffc87f00a4cb46ad25f84ae18dc780f8b99c2e870776f0530dfc930fa44b6fc06aeee
7
+ data.tar.gz: fbfa2a3eae645fea2af45289fa5e174817a4f157fac45de0cfd294d2e139a8b0207adac0e8a96383538960ac59767300762c087cc0d7eb09bd3c1ddd13967966
@@ -1,7 +1,9 @@
1
1
  require 'picsolve_docker_builder/base'
2
- require 'picsolve_docker_builder/composer/registry'
2
+ require 'picsolve_docker_builder/helpers/registry'
3
3
  require 'picsolve_docker_builder/composer/requirements'
4
4
 
5
+ Registry = PicsolveDockerBuilder::Helpers::Registry
6
+
5
7
  module PicsolveDockerBuilder
6
8
  module Composer
7
9
  # Represents an container in an namespace
@@ -1,10 +1,12 @@
1
1
  require 'picsolve_docker_builder/helpers/ssh_auth_forwarding'
2
- require 'picsolve_docker_builder/composer/registry'
2
+ require 'picsolve_docker_builder/helpers/registry'
3
3
  require 'picsolve_docker_builder/base'
4
4
  require 'docker'
5
5
  require 'logger'
6
6
  require 'psych'
7
7
 
8
+ Registry = PicsolveDockerBuilder::Helpers::Registry
9
+
8
10
  module PicsolveDockerBuilder
9
11
  # Docker image building template
10
12
  # rubocop:disable Metrics/ClassLength
@@ -105,7 +107,7 @@ module PicsolveDockerBuilder
105
107
  repotag = "#{dest_image_name}:#{tag}"
106
108
  log.info "pushing image with #{repotag}"
107
109
  @docker_build.push(
108
- Composer::Registry.creds,
110
+ Registry.creds,
109
111
  tag: tag
110
112
  ) do |resp|
111
113
  resp = JSON.parse resp
@@ -378,7 +380,7 @@ module PicsolveDockerBuilder
378
380
  log.debug "pulling image '#{image_name}' from registry"
379
381
  Docker::Image.create(
380
382
  { 'fromImage' => image_name },
381
- Composer::Registry.creds
383
+ Registry.creds
382
384
  )
383
385
  log.debug "building asset image from '#{image_name}'"
384
386
  asset_image_build
@@ -1,4 +1,4 @@
1
1
  # version
2
2
  module PicsolveDockerBuilder
3
- VERSION = '0.4.0'
3
+ VERSION = '0.5.0'
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: picsolve_docker_builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christian Simon
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-11 00:00:00.000000000 Z
11
+ date: 2016-02-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -259,7 +259,6 @@ files:
259
259
  - lib/picsolve_docker_builder/builder/file.rb
260
260
  - lib/picsolve_docker_builder/composer/composer.rb
261
261
  - lib/picsolve_docker_builder/composer/container.rb
262
- - lib/picsolve_docker_builder/composer/registry.rb
263
262
  - lib/picsolve_docker_builder/composer/requirements.rb
264
263
  - lib/picsolve_docker_builder/composer/requirements/base.rb
265
264
  - lib/picsolve_docker_builder/composer/requirements/context.rb
@@ -1,84 +0,0 @@
1
- require 'picsolve_docker_builder/base'
2
- require 'excon'
3
- require 'json'
4
- require 'base64'
5
-
6
- module PicsolveDockerBuilder
7
- module Composer
8
- # This represents a remote registry, that is queried for
9
- # for informations about images
10
- class Registry
11
- include PicsolveDockerBuilder::Base
12
-
13
- attr_reader :config
14
-
15
- def self.dockercfg_path
16
- File.expand_path '~/.dockercfg'
17
- end
18
-
19
- def self.dockercfg
20
- JSON.parse(
21
- File.open(
22
- dockercfg_path
23
- ).read
24
- )
25
- end
26
-
27
- def self.creds(*args)
28
- auth = Base64.decode64(
29
- get_login_basic(
30
- *args
31
- )
32
- ).split(':')
33
- {
34
- 'username' => auth[0],
35
- 'password' => auth[1]
36
- }
37
- end
38
-
39
- def self.get_login_basic(registry = 'docker.picsolve.net')
40
- dockercfg[registry]['auth']
41
- rescue StandardError
42
- nil
43
- end
44
-
45
- def self.login_basic(*args)
46
- auth = creds(*args)
47
- Base64.encode64("#{auth['username']}:#{auth['password']}").delete("\n")
48
- end
49
-
50
- def self.repo_tag_unique(image_name)
51
- repo_tag = image_name.split(%r{/})[1..-1].join('/')
52
- repo_tag_split = repo_tag.split(/:/)
53
- repo = repo_tag_split[0]
54
- tag = repo_tag_split[1] || 'latest'
55
-
56
- headers = {}
57
- headers['Authorization'] = "Basic #{login_basic}" \
58
- unless login_basic.nil?
59
-
60
- connection = Excon.new(
61
- 'https://docker.picsolve.net',
62
- headers: headers
63
- )
64
- response = connection.get(path: "/v1/repositories/#{repo}/tags")
65
-
66
- tags = JSON.parse(response.body)
67
-
68
- hash = tags[tag]
69
-
70
- tags.each do |t, h|
71
- next if h != hash
72
- next if t == tag
73
- next unless t.match(/jenkins-[0-9]+/)
74
- return {
75
- tag_unique: "#{image_name.split(':').first}:#{t}",
76
- hash: hash
77
- }
78
- end
79
-
80
- fail "Can not find a uniqe tag for #{image_name}"
81
- end
82
- end
83
- end
84
- end