takelage 0.22.2 → 0.23.0

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
  SHA256:
3
- metadata.gz: 3b1bdbf2ad81fedd7484d2b6ce316bc5486be8e38a829fbf44e3f141f6d90eff
4
- data.tar.gz: ce7345bf4f198b3b488dcb0d729b04c9464bfdd4a6367f8c8eaf208bfa178a07
3
+ metadata.gz: be86ab05e3007ca479cf08765723c1dd3f28c229a78de2be07618a7e30278577
4
+ data.tar.gz: 03037ef870580fa492323163cfb1754a1059329d6cb5ed1d384bfe7a690be21e
5
5
  SHA512:
6
- metadata.gz: 8d02d2ba911590af68e157717de71903bf32726f8f7e6ca4548b662019d9c5e081d65c0d167eba3c3e04474df4a8d6745d46db89eb081d3b627dab78450e7ff6
7
- data.tar.gz: 124474a3f2ed1db88b0e49bb02979a885c6db223a1b9105235daff4b945cef5558fd2496abb9f6ed78407cf37e8b3f57065a481e2a5307a0de3551f136f0a307
6
+ metadata.gz: f3dbb9cd02e027bffafc7e0d5e9060746bf1164e7a394810f0b010298db8039923bad224a01c4b625294a1618dd326d477478a3c24e3067a79edbb9474eba6c5
7
+ data.tar.gz: a6c473fabe3c219a3a10f1c7102b7f37bb605ec5ec30791aaef2470eee31f5004f19695f913658168ed7f7c2a6c30ce8ed17f4b8f7b560c900c20c6b7770e621
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'docker_registry2'
4
3
  require 'etc'
5
4
  require 'fileutils'
6
5
  require 'fylla'
@@ -52,18 +51,10 @@ require_relative 'takelage/docker/socket/scheme'
52
51
  require_relative 'takelage/docker/socket/start'
53
52
  require_relative 'takelage/docker/socket/stop'
54
53
  require_relative 'takelage/docker/socket/cli'
55
- require_relative 'takelage/docker/image/tag/list/local'
56
- require_relative 'takelage/docker/image/tag/list/remote'
57
- require_relative 'takelage/docker/image/tag/list/cli'
58
- require_relative 'takelage/docker/image/tag/latest/local'
59
- require_relative 'takelage/docker/image/tag/latest/remote'
60
- require_relative 'takelage/docker/image/tag/latest/cli'
61
- require_relative 'takelage/docker/image/tag/check/local'
62
- require_relative 'takelage/docker/image/tag/check/remote'
63
- require_relative 'takelage/docker/image/tag/check/cli'
54
+ require_relative 'takelage/docker/image/tag/list'
55
+ require_relative 'takelage/docker/image/tag/latest'
56
+ require_relative 'takelage/docker/image/tag/check'
64
57
  require_relative 'takelage/docker/image/tag/cli'
65
- require_relative 'takelage/docker/image/check/outdated'
66
- require_relative 'takelage/docker/image/check/cli'
67
58
  require_relative 'takelage/docker/image/update'
68
59
  require_relative 'takelage/docker/image/cli'
69
60
  require_relative 'takelage/docker/container/check/existing'
@@ -41,9 +41,9 @@ cmd_docker_container_get_containers: 'docker ps --all --filter name=^%{docker_re
41
41
  cmd_docker_container_remove_network: 'docker network rm %{network}'
42
42
  cmd_docker_container_docker_exec: 'docker exec %{container} su %{username} -c "LANG=en_US.UTF-8 %{command}"'
43
43
  cmd_docker_container_stop_container: 'docker stop %{container}'
44
- cmd_docker_image_tag_check_local_docker_images: 'docker images --quiet %{image}'
45
- cmd_docker_image_tag_list_local_docker_images: 'docker images %{docker_user}\/%{docker_repo} --format "{{.Tag}}"'
46
- cmd_docker_image_update_docker_pull_latest: 'docker pull %{docker_user}/%{docker_repo}:%{tag_latest_remote}'
44
+ cmd_docker_image_tag_check_docker_images: 'docker images --quiet %{image}'
45
+ cmd_docker_image_tag_list_docker_images: 'docker images %{docker_user}\/%{docker_repo} --format "{{.Tag}}"'
46
+ cmd_docker_image_update_docker_pull_latest: 'docker pull %{docker_user}/%{docker_repo}:latest'
47
47
  cmd_docker_image_update_docker_remove_dangling: 'docker image prune --force'
48
48
  cmd_docker_socket_config_agent_socket_path: 'gpgconf --list-dirs agent-socket'
49
49
  cmd_docker_socket_config_agent_ssh_socket_path: 'gpgconf --list-dirs agent-ssh-socket'
@@ -16,10 +16,9 @@ module Takelage
16
16
  include DockerContainerLogin
17
17
  include DockerContainerClean
18
18
  include DockerContainerPrune
19
- include DockerImageTagLatestLocal
20
- include DockerImageTagListLocal
21
- include DockerImageTagCheckLocal
22
- include DockerImageCheckOutdated
19
+ include DockerImageTagLatest
20
+ include DockerImageTagList
21
+ include DockerImageTagCheck
23
22
  include DockerSocketLib
24
23
  include DockerSocketHost
25
24
  include DockerSocketScheme
@@ -115,7 +115,7 @@ module DockerContainerLib
115
115
 
116
116
  # Check if docker image is available
117
117
  def _docker_container_lib_image_available?(image)
118
- return true if docker_image_tag_list_local.include? @docker_tag
118
+ return true if docker_image_tag_list.include? @docker_tag
119
119
 
120
120
  log.error "No local image \"#{image}\" available"
121
121
  log.info "Try: docker pull #{image}"
@@ -8,7 +8,6 @@ module DockerContainerLogin
8
8
 
9
9
  return false unless docker_check_running
10
10
 
11
- _docker_container_login_check_outdated
12
11
  docker_socket_start
13
12
  return false unless _docker_container_lib_create_net_and_ctr @hostname
14
13
 
@@ -17,18 +16,6 @@ module DockerContainerLogin
17
16
 
18
17
  private
19
18
 
20
- # Check if newer docker container is available.
21
- def _docker_container_login_check_outdated
22
- return if @docker_tag == 'latest'
23
-
24
- outdated = docker_image_check_outdated @docker_tag
25
- return unless outdated
26
-
27
- tag_latest = docker_image_tag_latest_remote
28
- log.warn "#{@docker_user}/#{@docker_repo}:#{@docker_tag} is outdated"
29
- log.warn "#{@docker_user}/#{@docker_repo}:#{tag_latest} is available"
30
- end
31
-
32
19
  # Prepare enter existing container command.
33
20
  def _docker_container_login_enter_container(container)
34
21
  log.debug "Entering container \"#{container}\""
@@ -7,8 +7,6 @@ module Takelage
7
7
  include SystemModule
8
8
  include ConfigModule
9
9
  include DockerCheckRunning
10
- include DockerImageTagListRemote
11
- include DockerImageTagLatestRemote
12
10
  include DockerImageUpdate
13
11
 
14
12
  # Initialize takelage docker image
@@ -21,9 +19,6 @@ module Takelage
21
19
  @docker_registry = config.active['docker_registry']
22
20
  end
23
21
 
24
- desc 'check [COMMAND]', 'Check docker image'
25
- subcommand 'check', DockerImageCheck
26
-
27
22
  desc 'tag [COMMAND]', 'Handle docker image tags'
28
23
  subcommand 'tag', DockerImageTag
29
24
 
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ # takelage docker image tag check
4
+ module DockerImageTagCheck
5
+ # Backend method for docker image tag check.
6
+ # @return [Boolean] does docker image tag exist?
7
+ def docker_image_tag_check(tag)
8
+ log.debug "Check if docker image tag \"#{tag}\" exists"
9
+
10
+ return false unless docker_check_running
11
+
12
+ if tag.to_s.strip.empty?
13
+ log.warn 'No docker image tag specified'
14
+ return false
15
+ end
16
+
17
+ image = "#{@docker_user}/#{@docker_repo}:#{tag}"
18
+
19
+ return false unless _docker_image_check_image? image
20
+
21
+ log.debug "Found docker image \"#{image}\""
22
+ true
23
+ end
24
+
25
+ private
26
+
27
+ # Check if image exists.
28
+ def _docker_image_check_image?(image)
29
+ cmd_docker_images =
30
+ format(
31
+ config.active['cmd_docker_image_tag_check_docker_images'],
32
+ image: image
33
+ )
34
+
35
+ if (run cmd_docker_images).to_s.strip.empty?
36
+ log.debug "No docker image \"#{image}\" found"
37
+ return false
38
+ end
39
+
40
+ true
41
+ end
42
+ end
@@ -3,13 +3,66 @@
3
3
  module Takelage
4
4
  # takelage docker image tag
5
5
  class DockerImageTag < SubCommandBase
6
- desc 'check [COMMAND]', 'Check docker image tag'
7
- subcommand 'check', DockerImageTagCheck
6
+ include LoggingModule
7
+ include SystemModule
8
+ include ConfigModule
9
+ include DockerCheckRunning
10
+ include DockerImageTagList
11
+ include DockerImageTagList
12
+ include DockerImageTagLatest
13
+ include DockerImageTagCheck
8
14
 
9
- desc 'latest [COMMAND]', 'Print latest local or remote docker image tag'
10
- subcommand 'latest', DockerImageTagLatest
15
+ # Initialize takelage docker image tag check
16
+ def initialize(args = [], local_options = {}, configuration = {})
17
+ # initialize thor parent class
18
+ super args, local_options, configuration
11
19
 
12
- desc 'list [COMMAND]', 'Print local or remote docker image tags'
13
- subcommand 'list', DockerImageTagList
20
+ @docker_user = config.active['docker_user']
21
+ @docker_repo = config.active['docker_repo']
22
+ @docker_registry = config.active['docker_registry']
23
+ end
24
+
25
+ #
26
+ # docker image tag check
27
+ #
28
+ desc 'check [TAG]', 'Check if docker image [TAG] exists'
29
+ long_desc <<-LONGDESC.gsub("\n", "\x5")
30
+ Check if docker image tag exists
31
+ LONGDESC
32
+ # Check if docker image tag exists.
33
+ def check(tag)
34
+ exit docker_image_tag_check tag
35
+ end
36
+
37
+ #
38
+ # docker image tag latest
39
+ #
40
+ desc 'list', 'Print latest docker image tag'
41
+ long_desc <<-LONGDESC.gsub("\n", "\x5")
42
+ Print latest docker image tag
43
+ Print the tag of the docker image with the highest tag.
44
+ LONGDESC
45
+ # Print latest docker image tag.
46
+ def latest
47
+ tag_latest = docker_image_tag_latest
48
+ exit false if tag_latest == false
49
+ say tag_latest
50
+ true
51
+ end
52
+
53
+ #
54
+ # docker image tag list
55
+ #
56
+ desc 'list', 'Print docker image tags'
57
+ long_desc <<-LONGDESC.gsub("\n", "\x5")
58
+ Print docker image tags
59
+ LONGDESC
60
+ # Print docker image tags.
61
+ def list
62
+ tag_list = docker_image_tag_list
63
+ exit false if tag_list == false
64
+ say tag_list
65
+ true
66
+ end
14
67
  end
15
68
  end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ # takelage docker image tag latest
4
+ module DockerImageTagLatest
5
+ # Backend method for docker image tag latest.
6
+ # @return [String] latest docker image tag
7
+ def docker_image_tag_latest
8
+ log.debug 'Getting latest docker image tag'
9
+
10
+ return false unless docker_check_running
11
+
12
+ tags = docker_image_tag_list
13
+
14
+ tag_latest = tags[-1]
15
+
16
+ log.debug "Latest docker tag: #{tag_latest}"
17
+
18
+ tag_latest
19
+ end
20
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ # takelage docker image tag list
4
+ module DockerImageTagList
5
+ # Backend method for docker image tag list.
6
+ # @return [Array] docker image tags
7
+ def docker_image_tag_list
8
+ cmd_docker_tags =
9
+ format(
10
+ config.active['cmd_docker_image_tag_list_docker_images'],
11
+ docker_user: @docker_user,
12
+ docker_repo: @docker_repo
13
+ )
14
+
15
+ tags = (run cmd_docker_tags).split("\n")
16
+
17
+ VersionSorter.sort(tags)
18
+ end
19
+ end
@@ -6,12 +6,7 @@ module DockerImageUpdate
6
6
  def docker_image_update
7
7
  return false unless docker_check_running
8
8
 
9
- tags_remote = docker_image_tag_list_remote
10
-
11
- tag = 'latest'
12
- tag = docker_image_tag_latest_remote unless tags_remote.include?('latest')
13
-
14
- cmd_docker_pull_latest = _docker_image_update_cmd_docker_pull_latest tag
9
+ cmd_docker_pull_latest = _docker_image_update_cmd_docker_pull_latest
15
10
 
16
11
  cmd_docker_remove_dangling =
17
12
  config.active['cmd_docker_image_update_docker_remove_dangling']
@@ -22,12 +17,11 @@ module DockerImageUpdate
22
17
  private
23
18
 
24
19
  # Prepare dpcker pull latest command.
25
- def _docker_image_update_cmd_docker_pull_latest(tag)
20
+ def _docker_image_update_cmd_docker_pull_latest
26
21
  format(
27
22
  config.active['cmd_docker_image_update_docker_pull_latest'],
28
23
  docker_user: @docker_user,
29
- docker_repo: @docker_repo,
30
- tag_latest_remote: tag
24
+ docker_repo: @docker_repo
31
25
  )
32
26
  end
33
27
  end
@@ -24,10 +24,9 @@ module DockerSocketHost
24
24
  # if interface docker0 exists (== linux host)
25
25
  # then return the ip address
26
26
  addr_infos.each do |addr_info|
27
- if (addr_info.name == 'docker0') && addr_info.addr.ipv4?
28
- socket_host = addr_info.addr.ip_address
29
- break
30
- end
27
+ next unless (addr_info.name == 'docker0') && addr_info.addr.ipv4?
28
+
29
+ socket_host = addr_info.addr.ip_address
31
30
  end
32
31
 
33
32
  socket_host
@@ -1 +1 @@
1
- 0.22.2
1
+ 0.23.0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: takelage
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.22.2
4
+ version: 0.23.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geospin
@@ -239,19 +239,11 @@ files:
239
239
  - lib/takelage/docker/container/lib.rb
240
240
  - lib/takelage/docker/container/login.rb
241
241
  - lib/takelage/docker/container/prune.rb
242
- - lib/takelage/docker/image/check/cli.rb
243
- - lib/takelage/docker/image/check/outdated.rb
244
242
  - lib/takelage/docker/image/cli.rb
245
- - lib/takelage/docker/image/tag/check/cli.rb
246
- - lib/takelage/docker/image/tag/check/local.rb
247
- - lib/takelage/docker/image/tag/check/remote.rb
243
+ - lib/takelage/docker/image/tag/check.rb
248
244
  - lib/takelage/docker/image/tag/cli.rb
249
- - lib/takelage/docker/image/tag/latest/cli.rb
250
- - lib/takelage/docker/image/tag/latest/local.rb
251
- - lib/takelage/docker/image/tag/latest/remote.rb
252
- - lib/takelage/docker/image/tag/list/cli.rb
253
- - lib/takelage/docker/image/tag/list/local.rb
254
- - lib/takelage/docker/image/tag/list/remote.rb
245
+ - lib/takelage/docker/image/tag/latest.rb
246
+ - lib/takelage/docker/image/tag/list.rb
255
247
  - lib/takelage/docker/image/update.rb
256
248
  - lib/takelage/docker/socket/cli.rb
257
249
  - lib/takelage/docker/socket/host.rb
@@ -1,39 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Takelage
4
- # takelage docker image check
5
- class DockerImageCheck < SubCommandBase
6
- include LoggingModule
7
- include SystemModule
8
- include ConfigModule
9
- include DockerCheckRunning
10
- include DockerImageTagListRemote
11
- include DockerImageTagLatestRemote
12
- include DockerImageCheckOutdated
13
-
14
- # Initialize takelage docker image check
15
- def initialize(args = [], local_options = {}, configuration = {})
16
- # initialize thor parent class
17
- super args, local_options, configuration
18
-
19
- @docker_user = config.active['docker_user']
20
- @docker_repo = config.active['docker_repo']
21
- @docker_registry = config.active['docker_registry']
22
- @docker_tag = config.active['docker_tag']
23
- end
24
-
25
- #
26
- # docker image check outdated
27
- #
28
- desc 'outdated', 'Check if a docker image is outdated'
29
- long_desc <<-LONGDESC.gsub("\n", "\x5")
30
- Check if a docker image is outdated
31
- LONGDESC
32
- # Check if a docker image is outdated.
33
- def outdated
34
- outdated = docker_image_check_outdated @docker_tag
35
- say "Your takelage version \"#{@docker_tag}\" is outdated" if outdated
36
- exit outdated
37
- end
38
- end
39
- end
@@ -1,40 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # takelage docker image check outdated
4
- module DockerImageCheckOutdated
5
- # Backend method for docker image check outdated.
6
- # @return [Boolean] is docker image tag older than latest remote image tag?
7
- def docker_image_check_outdated(tag)
8
- log.debug "Check if docker image version \"#{tag}\" is outdated"
9
-
10
- return false unless docker_check_running
11
-
12
- return false if _docker_outdated_tag_latest? tag
13
-
14
- tag_latest_remote = docker_image_tag_latest_remote
15
- tags = [tag, docker_image_tag_latest_remote]
16
- # rubocop:disable Style/RedundantSort
17
- outdated = (tag != VersionSorter.sort(tags).last)
18
- # rubocop:enable Style/RedundantSort
19
-
20
- _docker_outdated_log_info tag, tag_latest_remote if outdated
21
-
22
- outdated
23
- end
24
-
25
- private
26
-
27
- # Check if the tag is "latest".
28
- def _docker_outdated_tag_latest?(tag)
29
- return false unless tag == 'latest'
30
-
31
- log.debug 'Docker image version "latest" is by definition never outdated'
32
- true
33
- end
34
-
35
- # Log info if docker image is outdated.
36
- def _docker_outdated_log_info(tag, tag_latest_remote)
37
- log.debug "Docker image version is outdated: #{tag}"
38
- log.debug "Docker image version is available: #{tag_latest_remote}"
39
- end
40
- end
@@ -1,48 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Takelage
4
- # takelage docker image tag check
5
- class DockerImageTagCheck < SubCommandBase
6
- include LoggingModule
7
- include SystemModule
8
- include ConfigModule
9
- include DockerCheckRunning
10
- include DockerImageTagListRemote
11
- include DockerImageTagCheckLocal
12
- include DockerImageTagCheckRemote
13
-
14
- # Initialize takelage docker image tag check
15
- def initialize(args = [], local_options = {}, configuration = {})
16
- # initialize thor parent class
17
- super args, local_options, configuration
18
-
19
- @docker_user = config.active['docker_user']
20
- @docker_repo = config.active['docker_repo']
21
- @docker_registry = config.active['docker_registry']
22
- end
23
-
24
- #
25
- # docker image tag check local
26
- #
27
- desc 'local [TAG]', 'Check if local docker image [TAG] exists'
28
- long_desc <<-LONGDESC.gsub("\n", "\x5")
29
- Check if local docker image tag exists
30
- LONGDESC
31
- # Check if local docker image tag exists.
32
- def local(tag)
33
- exit docker_image_tag_check_local tag
34
- end
35
-
36
- #
37
- # docker image tag check remote
38
- #
39
- desc 'remote [TAG]', 'Check if remote docker image [TAG] exists'
40
- long_desc <<-LONGDESC.gsub("\n", "\x5")
41
- Check if remote docker image tag exists
42
- LONGDESC
43
- # Check if remote docker image tag exists.
44
- def remote(tag)
45
- exit docker_image_tag_check_remote tag
46
- end
47
- end
48
- end
@@ -1,42 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # takelage docker image tag check local
4
- module DockerImageTagCheckLocal
5
- # Backend method for docker image check tag local.
6
- # @return [Boolean] does local docker image tag exist?
7
- def docker_image_tag_check_local(tag)
8
- log.debug "Check if local docker image tag \"#{tag}\" exists"
9
-
10
- return false unless docker_check_running
11
-
12
- if tag.to_s.strip.empty?
13
- log.warn 'No local docker image tag specified'
14
- return false
15
- end
16
-
17
- image = "#{@docker_user}/#{@docker_repo}:#{tag}"
18
-
19
- return false unless _docker_image_check_local_image? image
20
-
21
- log.debug "Found local docker image \"#{image}\""
22
- true
23
- end
24
-
25
- private
26
-
27
- # Check if local image exists.
28
- def _docker_image_check_local_image?(image)
29
- cmd_docker_images =
30
- format(
31
- config.active['cmd_docker_image_tag_check_local_docker_images'],
32
- image: image
33
- )
34
-
35
- if (run cmd_docker_images).to_s.strip.empty?
36
- log.debug "No local docker image \"#{image}\" found"
37
- return false
38
- end
39
-
40
- true
41
- end
42
- end
@@ -1,38 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # takelage docker image tag check remote
4
- module DockerImageTagCheckRemote
5
- # Backend method for docker image check tag remote.
6
- # @return [Boolean] does remote docker image tag exist?
7
- def docker_image_tag_check_remote(tag)
8
- log.debug "Check if remote image tag \"#{tag}\" exists"
9
-
10
- return false unless docker_check_running
11
-
12
- if tag.to_s.strip.empty?
13
- log.warn 'No remote docker image tag specified'
14
- return false
15
- end
16
-
17
- image = "#{@docker_user}/#{@docker_repo}:#{tag}"
18
-
19
- return false unless _docker_iamge_check_remote_image? image, tag
20
-
21
- log.debug "Found remote docker image \"#{image}\""
22
- true
23
- end
24
-
25
- private
26
-
27
- # Check if remote image exists.
28
- def _docker_iamge_check_remote_image?(image, tag)
29
- tags = docker_image_tag_list_remote
30
-
31
- unless tags != false && tags.include?(tag)
32
- log.debug "No remote docker image \"#{image}\" found"
33
- return false
34
- end
35
-
36
- true
37
- end
38
- end
@@ -1,57 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Takelage
4
- # takelage docker image tag latest
5
- class DockerImageTagLatest < SubCommandBase
6
- include LoggingModule
7
- include SystemModule
8
- include ConfigModule
9
- include DockerCheckRunning
10
- include DockerImageTagListLocal
11
- include DockerImageTagListRemote
12
- include DockerImageTagLatestLocal
13
- include DockerImageTagLatestRemote
14
-
15
- # Initialize takelage docker image tag latest
16
- def initialize(args = [], local_options = {}, configuration = {})
17
- # initialize thor parent class
18
- super args, local_options, configuration
19
-
20
- @docker_user = config.active['docker_user']
21
- @docker_repo = config.active['docker_repo']
22
- @docker_registry = config.active['docker_registry']
23
- end
24
-
25
- #
26
- # docker image tag latest local
27
- #
28
- desc 'local', 'Print latest local docker image tag'
29
- long_desc <<-LONGDESC.gsub("\n", "\x5")
30
- Print latest local docker image tag
31
- Print the tag of the local docker image with the highest tag.
32
- LONGDESC
33
- # Print latest local docker image tag.
34
- def local
35
- tag_latest_local = docker_image_tag_latest_local
36
- exit false if tag_latest_local == false
37
- say tag_latest_local
38
- true
39
- end
40
-
41
- #
42
- # docker image tag latest remote
43
- #
44
- desc 'remote', 'Print latest remote docker image tag'
45
- long_desc <<-LONGDESC.gsub("\n", "\x5")
46
- Print latest remote docker image tag
47
- Print the tag of the remote docker image with the highest tag.
48
- LONGDESC
49
- # Print latest remote docker image tag.
50
- def remote
51
- tag_latest_remote = docker_image_tag_latest_remote
52
- exit false if tag_latest_remote == false
53
- say tag_latest_remote
54
- true
55
- end
56
- end
57
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # takelage docker image tag latest local
4
- module DockerImageTagLatestLocal
5
- # Backend method for docker image tag latest local.
6
- # @return [String] latest local docker image tag
7
- def docker_image_tag_latest_local
8
- log.debug 'Getting latest local docker image tag'
9
-
10
- return false unless docker_check_running
11
-
12
- tags = docker_image_tag_list_local
13
-
14
- tag_latest_local = tags[-1]
15
-
16
- log.debug "Latest docker local tag: #{tag_latest_local}"
17
-
18
- tag_latest_local
19
- end
20
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # takelage docker image tag latest remote
4
- module DockerImageTagLatestRemote
5
- # Backend method for docker image tag latest remote.
6
- # @return [String] latest remote docker image tag
7
- def docker_image_tag_latest_remote
8
- log.debug 'Getting latest remote docker image tag'
9
-
10
- return false unless docker_check_running
11
-
12
- tags = docker_image_tag_list_remote
13
-
14
- if tags == false || tags.nil?
15
- log.warn 'No latest docker remote tag'
16
- return ''
17
- end
18
-
19
- tag_latest_remote = tags[-1]
20
-
21
- log.debug "Latest docker remote tag: #{tag_latest_remote}"
22
-
23
- tag_latest_remote
24
- end
25
- end
@@ -1,53 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Takelage
4
- # takelage docker image tag list
5
- class DockerImageTagList < SubCommandBase
6
- include LoggingModule
7
- include SystemModule
8
- include ConfigModule
9
- include DockerCheckRunning
10
- include DockerImageTagListLocal
11
- include DockerImageTagListRemote
12
-
13
- # Initialize takelage docker image tag list
14
- def initialize(args = [], local_options = {}, configuration = {})
15
- # initialize thor parent class
16
- super args, local_options, configuration
17
-
18
- @docker_user = config.active['docker_user']
19
- @docker_repo = config.active['docker_repo']
20
- @docker_registry = config.active['docker_registry']
21
- end
22
-
23
- #
24
- # docker image tag list local
25
- #
26
- desc 'local', 'Print local docker image tags'
27
- long_desc <<-LONGDESC.gsub("\n", "\x5")
28
- Print local docker image tags
29
- LONGDESC
30
- # Print local docker image tags.
31
- def local
32
- tag_list_local = docker_image_tag_list_local
33
- exit false if tag_list_local == false
34
- say tag_list_local
35
- true
36
- end
37
-
38
- #
39
- # docker image tag list remote
40
- #
41
- desc 'remote', 'Print remote docker image tags'
42
- long_desc <<-LONGDESC.gsub("\n", "\x5")
43
- Print remote docker image tags
44
- LONGDESC
45
- # Print latest remote docker image tag.
46
- def remote
47
- tag_list_remote = docker_image_tag_list_remote
48
- exit false if tag_list_remote == false
49
- say tag_list_remote
50
- true
51
- end
52
- end
53
- end
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # takelage docker image tag list local
4
- module DockerImageTagListLocal
5
- # Backend method for docker image tag list local.
6
- # @return [Array] local docker image tags
7
- def docker_image_tag_list_local
8
- cmd_docker_tags =
9
- format(
10
- config.active['cmd_docker_image_tag_list_local_docker_images'],
11
- docker_user: @docker_user,
12
- docker_repo: @docker_repo
13
- )
14
-
15
- tags = (run cmd_docker_tags).split("\n")
16
-
17
- VersionSorter.sort(tags)
18
- end
19
- end
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # takelage docker image tag list remote
4
- module DockerImageTagListRemote
5
- # Backend method for docker image tag list remote.
6
- # @return [Array] remote docker image tags
7
- def docker_image_tag_list_remote
8
- log.debug 'Getting docker remote tags ' \
9
- "of \"#{@docker_user}/#{@docker_repo}\" " \
10
- "from \"#{@docker_registry}\""
11
- _docker_image_tag_list_remote_tags
12
- end
13
-
14
- private
15
-
16
- # Get docker remote tags.
17
- def _docker_image_tag_list_remote_tags
18
- user = File.basename @docker_user
19
- begin
20
- registry = DockerRegistry2.connect(@docker_registry)
21
- tags = registry.tags("#{user}/#{@docker_repo}")
22
- VersionSorter.sort(tags['tags'])
23
- rescue RestClient::Exceptions::OpenTimeout
24
- log.error "Timeout while connecting to \"#{@docker_registry}\""
25
- false
26
- end
27
- end
28
- end