takelage 0.22.2 → 0.24.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.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +11 -11
  3. data/lib/takelage.rb +8 -14
  4. data/lib/takelage/default.yml +5 -4
  5. data/lib/takelage/docker/check/cli.rb +18 -5
  6. data/lib/takelage/docker/check/{running.rb → daemon.rb} +3 -3
  7. data/lib/takelage/docker/check/socat.rb +23 -0
  8. data/lib/takelage/docker/container/check/cli.rb +2 -1
  9. data/lib/takelage/docker/container/check/existing.rb +1 -1
  10. data/lib/takelage/docker/container/check/network.rb +1 -1
  11. data/lib/takelage/docker/container/check/orphaned.rb +1 -1
  12. data/lib/takelage/docker/container/clean.rb +1 -1
  13. data/lib/takelage/docker/container/cli.rb +6 -6
  14. data/lib/takelage/docker/container/command.rb +1 -1
  15. data/lib/takelage/docker/container/daemon.rb +1 -1
  16. data/lib/takelage/docker/container/lib.rb +9 -1
  17. data/lib/takelage/docker/container/login.rb +1 -14
  18. data/lib/takelage/docker/container/prune.rb +1 -1
  19. data/lib/takelage/docker/image/cli.rb +1 -6
  20. data/lib/takelage/docker/image/tag/check.rb +42 -0
  21. data/lib/takelage/docker/image/tag/cli.rb +59 -6
  22. data/lib/takelage/docker/image/tag/latest.rb +24 -0
  23. data/lib/takelage/docker/image/tag/list.rb +19 -0
  24. data/lib/takelage/docker/image/update.rb +4 -10
  25. data/lib/takelage/docker/socket/cli.rb +2 -1
  26. data/lib/takelage/docker/socket/host.rb +3 -4
  27. data/lib/takelage/docker/socket/start.rb +3 -1
  28. data/lib/takelage/docker/socket/stop.rb +4 -3
  29. data/lib/takelage/version +1 -1
  30. metadata +6 -13
  31. data/lib/takelage/docker/image/check/cli.rb +0 -39
  32. data/lib/takelage/docker/image/check/outdated.rb +0 -40
  33. data/lib/takelage/docker/image/tag/check/cli.rb +0 -48
  34. data/lib/takelage/docker/image/tag/check/local.rb +0 -42
  35. data/lib/takelage/docker/image/tag/check/remote.rb +0 -38
  36. data/lib/takelage/docker/image/tag/latest/cli.rb +0 -57
  37. data/lib/takelage/docker/image/tag/latest/local.rb +0 -20
  38. data/lib/takelage/docker/image/tag/latest/remote.rb +0 -25
  39. data/lib/takelage/docker/image/tag/list/cli.rb +0 -53
  40. data/lib/takelage/docker/image/tag/list/local.rb +0 -19
  41. data/lib/takelage/docker/image/tag/list/remote.rb +0 -28
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3b1bdbf2ad81fedd7484d2b6ce316bc5486be8e38a829fbf44e3f141f6d90eff
4
- data.tar.gz: ce7345bf4f198b3b488dcb0d729b04c9464bfdd4a6367f8c8eaf208bfa178a07
3
+ metadata.gz: c41543ac3d5b7a93fce0807339107b6f2016524b17ff3c7a8dbfc9bb227e003f
4
+ data.tar.gz: 12a43bf57f55d6e2bb41530eb3f71c4c1f1a99003700845bc8b150072689d464
5
5
  SHA512:
6
- metadata.gz: 8d02d2ba911590af68e157717de71903bf32726f8f7e6ca4548b662019d9c5e081d65c0d167eba3c3e04474df4a8d6745d46db89eb081d3b627dab78450e7ff6
7
- data.tar.gz: 124474a3f2ed1db88b0e49bb02979a885c6db223a1b9105235daff4b945cef5558fd2496abb9f6ed78407cf37e8b3f57065a481e2a5307a0de3551f136f0a307
6
+ metadata.gz: 35a1911ec6a0c7191e500968902be2cf92904906d8cff2af47d0bff8f30c60a3f5b7049cbcb512ac05ce65f21fe71de30987a7de77f63d222f7c0bf1ef1b8d9b
7
+ data.tar.gz: 9fdd8888975db08c2941f9774c0c28a4a4fa97aca800385bd600d69b3e020374f4d0867a6d7a8710935dec663b746eb18d7f6721049623aa908cfd409f72f4dc
data/README.md CHANGED
@@ -59,22 +59,19 @@ tau [bit scope inbit](features/cucumber/features/bit/bit.scope.inbit.feature) |
59
59
  tau [bit scope list](features/cucumber/features/bit/bit.scope.list.feature) | List bit remote scopes
60
60
  tau [bit scope new](features/cucumber/features/bit/bit.scope.new.feature) [SCOPE] | Init a new bit [SCOPE]
61
61
  tau [completion bash](features/cucumber/features/completion/completion.bash.feature) | Print bash completion code
62
- tau [docker check running](features/cucumber/features/docker/docker.check.running.feature) | Check if docker daemon is running
62
+ tau [docker check daemon](features/cucumber/features/docker/docker.check.daemon.feature) | Check if docker daemon is running
63
+ tau [docker check socat](features/cucumber/features/docker/docker.check.socat.feature) | Check if socat command is available
63
64
  tau [docker container check existing](features/cucumber/features/docker/docker.container.check.existing.feature) [CONTAINER] | Check if docker [CONTAINER] is existing
64
65
  tau [docker container check network](features/cucumber/features/docker/docker.container.check.network.feature) [NETWORK] | Check if docker [NETWORK] is existing
65
66
  tau [docker container check orphaned](features/cucumber/features/docker/docker.container.check.orphaned.feature) [CONTAINER] | Check if docker [CONTAINER] is orphaned
67
+ tau [docker container clean](features/cucumber/features/docker/docker.container.clean.feature) | Remove all docker containers
66
68
  tau [docker container command](features/cucumber/features/docker/docker.container.command.feature) [CMD] | Run [CMD] in a docker container
67
69
  tau [docker container daemon](features/cucumber/features/docker/docker.container.daemon.feature) | Run docker container in daemon mode
68
70
  tau [docker container login](features/cucumber/features/docker/docker.container.login.feature) | Log in to latest local docker container
69
- tau [docker container clean](features/cucumber/features/docker/docker.container.clean.feature) | Remove all docker containers
70
71
  tau [docker container prune](features/cucumber/features/docker/docker.container.prune.feature) | Remove orphaned docker containers
71
- tau [docker image check outdated](features/cucumber/features/docker/docker.image.check.outdated.feature) | Check if a docker image is outdated
72
- tau [docker image tag check local](features/cucumber/features/docker/docker.image.tag.check.local.feature) [TAG] | Check if local docker image [TAG] exists
73
- tau [docker image tag check remote](features/cucumber/features/docker/docker.image.tag.check.remote.feature) [TAG] | Check if remote docker image [TAG] exists
74
- tau [docker image tag latest local](features/cucumber/features/docker/docker.image.tag.latest.local.feature) | Print latest local docker image tag
75
- tau [docker image tag latest remote](features/cucumber/features/docker/docker.image.tag.latest.remote.feature) | Print latest remote docker image tag
76
- tau [docker image tag list local](features/cucumber/features/docker/docker.image.tag.list.local.feature) | Print local docker image tags
77
- tau [docker image tag list remote](features/cucumber/features/docker/docker.image.tag.list.remote.feature) | Print remote docker image tags
72
+ tau [docker image tag check](features/cucumber/features/docker/docker.image.tag.check.feature) [TAG] | Check if local docker image [TAG] exists
73
+ tau [docker image tag latest](features/cucumber/features/docker/docker.image.tag.latest.feature) | Print latest local docker image tag
74
+ tau [docker image tag list](features/cucumber/features/docker/docker.image.tag.list.feature) | Print local docker image tags
78
75
  tau [docker image update](features/cucumber/features/docker/docker.image.update.feature) | Get latest remote docker container
79
76
  tau [docker socket host](features/cucumber/features/docker/docker.socket.host.feature) | Print docker socket host ip address
80
77
  tau [docker socket scheme](features/cucumber/features/docker/docker.socket.scheme.feature) | Print docker socket scheme
@@ -93,15 +90,15 @@ tau [self config home](features/cucumber/features/self/self.config.home.feature)
93
90
  tau [self config project](features/cucumber/features/self/self.config.project.feature) | Print takelage project config file configuration
94
91
  tau [self list](features/cucumber/features/self/self.list.feature) | List all commands
95
92
  tau [self version](features/cucumber/features/self/self.version.feature) | Print tau semantic version number
93
+ tau clean | Alias for tau [docker container clean](features/cucumber/features/docker/docker.container.clean.feature)
96
94
  tau config | Alias for tau [self config active](features/cucumber/features/self/self.config.active.feature)
97
95
  tau copy [DIR] [SCOPE] | Alias for tau [bit clipboard copy](features/cucumber/features/bit/bit.clipboard.copy.feature)
98
96
  tau list | Alias for tau [self list](features/cucumber/features/self/self.list.feature)
99
97
  tau login | Alias for tau [docker container login](features/cucumber/features/docker/docker.container.login.feature)
100
- tau clean | Alias for tau [docker container clean](features/cucumber/features/docker/docker.container.clean.feature)
101
98
  tau paste [COMPONENT] [DIR] | Alias for tau [bit clipboard paste](features/cucumber/features/bit/bit.clipboard.paste.feature)
102
99
  tau project | Alias for tau [info project active](features/cucumber/features/info/info.project.active.feature)
103
- tau pull | Alias for tau [bit clipboard pull](features/cucumber/features/bit/bit.clipboard.pull.feature)
104
100
  tau prune | Alias for tau [docker container prune](features/cucumber/features/docker/docker.container.prune.feature)
101
+ tau pull | Alias for tau [bit clipboard pull](features/cucumber/features/bit/bit.clipboard.pull.feature)
105
102
  tau push | Alias for tau [bit clipboard push](features/cucumber/features/bit/bit.clipboard.push.feature)
106
103
  tau update | Alias for tau [docker image update](features/cucumber/features/docker/docker.image.update.feature)
107
104
  tau version | Alias for tau [self version](features/cucumber/features/self/self.version.feature)
@@ -125,6 +122,9 @@ or *tau config*.
125
122
  | *~/.takelage.yml* | normal | User-wide configuration file in your home directory. This is your normal custom configuration file. |
126
123
  | *takelage.yml* | highest | Project-specific configuration file next to your main Rakefile. Some projects need special configuration. |
127
124
 
125
+ Please remember that a project directory is identified by the main
126
+ [Rakefile](Rakefile).
127
+
128
128
  ### Configuration Examples
129
129
 
130
130
  - You should add the following configuration items in your *~/.takelage.yml*
data/lib/takelage.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'docker_registry2'
4
3
  require 'etc'
4
+ require 'digest/bubblebabble'
5
5
  require 'fileutils'
6
6
  require 'fylla'
7
7
  require 'json'
@@ -44,7 +44,8 @@ require_relative 'takelage/bit/require/import'
44
44
  require_relative 'takelage/bit/require/cli'
45
45
  require_relative 'takelage/bit/cli'
46
46
  require_relative 'takelage/completion/cli'
47
- require_relative 'takelage/docker/check/running'
47
+ require_relative 'takelage/docker/check/daemon'
48
+ require_relative 'takelage/docker/check/socat'
48
49
  require_relative 'takelage/docker/check/cli'
49
50
  require_relative 'takelage/docker/socket/lib'
50
51
  require_relative 'takelage/docker/socket/host'
@@ -52,18 +53,10 @@ require_relative 'takelage/docker/socket/scheme'
52
53
  require_relative 'takelage/docker/socket/start'
53
54
  require_relative 'takelage/docker/socket/stop'
54
55
  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'
56
+ require_relative 'takelage/docker/image/tag/list'
57
+ require_relative 'takelage/docker/image/tag/latest'
58
+ require_relative 'takelage/docker/image/tag/check'
64
59
  require_relative 'takelage/docker/image/tag/cli'
65
- require_relative 'takelage/docker/image/check/outdated'
66
- require_relative 'takelage/docker/image/check/cli'
67
60
  require_relative 'takelage/docker/image/update'
68
61
  require_relative 'takelage/docker/image/cli'
69
62
  require_relative 'takelage/docker/container/check/existing'
@@ -116,8 +109,9 @@ module Takelage
116
109
  # Initialize global singleton project
117
110
  initialize_project
118
111
 
119
- # Prepare for the worst
112
+ # Set defaults
120
113
  @docker_daemon_running = false
114
+ @socat_command_available = false
121
115
 
122
116
  # fylla bash completion code
123
117
  @bash_fylla = Fylla.bash_completion self
@@ -29,7 +29,8 @@ cmd_bit_scope_add_scope: 'bit remote add %{remote}/%{scope}'
29
29
  cmd_bit_scope_list_find_scopes: 'find -L %{root} -name scope.json'
30
30
  cmd_bit_scope_new_bit_init: 'mkdir -p %{root}/%{scope} && cd %{root}/%{scope} && bit init --bare'
31
31
  cmd_bit_scope_remove_scope: 'rm --force --recursive %{root}/%{scope}'
32
- cmd_docker_check_running_docker_info: 'docker info'
32
+ cmd_docker_check_daemon_docker_info: 'docker info'
33
+ cmd_docker_check_socat_which_socat: 'which socat'
33
34
  cmd_docker_container_check_existing_docker_ps: 'docker ps --filter name=^%{container}$ --quiet'
34
35
  cmd_docker_container_check_network_docker_network: 'docker network ls --quiet --filter name=^%{network}$'
35
36
  cmd_docker_container_check_orphaned_docker_exec: 'docker exec --interactive %{container} ps a'
@@ -41,9 +42,9 @@ cmd_docker_container_get_containers: 'docker ps --all --filter name=^%{docker_re
41
42
  cmd_docker_container_remove_network: 'docker network rm %{network}'
42
43
  cmd_docker_container_docker_exec: 'docker exec %{container} su %{username} -c "LANG=en_US.UTF-8 %{command}"'
43
44
  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}'
45
+ cmd_docker_image_tag_check_docker_images: 'docker images --quiet %{image}'
46
+ cmd_docker_image_tag_list_docker_images: 'docker images %{docker_user}\/%{docker_repo} --format "{{.Tag}}"'
47
+ cmd_docker_image_update_docker_pull_latest: 'docker pull %{docker_user}/%{docker_repo}:latest'
47
48
  cmd_docker_image_update_docker_remove_dangling: 'docker image prune --force'
48
49
  cmd_docker_socket_config_agent_socket_path: 'gpgconf --list-dirs agent-socket'
49
50
  cmd_docker_socket_config_agent_ssh_socket_path: 'gpgconf --list-dirs agent-ssh-socket'
@@ -6,18 +6,31 @@ module Takelage
6
6
  include LoggingModule
7
7
  include SystemModule
8
8
  include ConfigModule
9
- include DockerCheckRunning
9
+ include DockerCheckDaemon
10
+ include DockerCheckSocat
10
11
 
11
12
  #
12
- # docker check running
13
+ # docker check daemon
13
14
  #
14
- desc 'running', 'Check if docker daemon is running'
15
+ desc 'daemon', 'Check if docker daemon is running'
15
16
  long_desc <<-LONGDESC.gsub("\n", "\x5")
16
17
  Check if docker daemon is running
17
18
  LONGDESC
18
19
  # Check if docker daemon is running.
19
- def running
20
- exit docker_check_running
20
+ def daemon
21
+ exit docker_check_daemon
22
+ end
23
+
24
+ #
25
+ # docker check socat
26
+ #
27
+ desc 'socat', 'Check if socat command is available'
28
+ long_desc <<-LONGDESC.gsub("\n", "\x5")
29
+ Check if socat command is available
30
+ LONGDESC
31
+ # Check if socat command is available.
32
+ def socat
33
+ exit docker_check_socat
21
34
  end
22
35
  end
23
36
  end
@@ -1,15 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # takelage docker check running
4
- module DockerCheckRunning
4
+ module DockerCheckDaemon
5
5
  # Backend method for docker check running.
6
6
  # @return [Boolean] is the docker daemon running?
7
- def docker_check_running
7
+ def docker_check_daemon
8
8
  return true if @docker_daemon_running
9
9
 
10
10
  log.debug 'Check if the docker daemon is running'
11
11
 
12
- status = try config.active['cmd_docker_check_running_docker_info']
12
+ status = try config.active['cmd_docker_check_daemon_docker_info']
13
13
 
14
14
  unless status.exitstatus.zero?
15
15
  log.error 'The docker daemon is not running'
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ # takelage docker check running
4
+ module DockerCheckSocat
5
+ # Backend method for docker check socat.
6
+ # @return [Boolean] is the socat command available?
7
+ def docker_check_socat
8
+ return true if @socat_command_available
9
+
10
+ log.debug 'Check if the socat command is available'
11
+
12
+ status = try config.active['cmd_docker_check_socat_which_socat']
13
+
14
+ unless status.exitstatus.zero?
15
+ log.debug 'The socat command is not available'
16
+ return false
17
+ end
18
+
19
+ log.debug 'The socat command is available'
20
+ @socat_command_available = true
21
+ true
22
+ end
23
+ end
@@ -6,7 +6,8 @@ module Takelage
6
6
  include LoggingModule
7
7
  include SystemModule
8
8
  include ConfigModule
9
- include DockerCheckRunning
9
+ include DockerCheckDaemon
10
+ include DockerCheckSocat
10
11
  include DockerContainerCheckExisting
11
12
  include DockerContainerCheckNetwork
12
13
  include DockerContainerCheckOrphaned
@@ -7,7 +7,7 @@ module DockerContainerCheckExisting
7
7
  def docker_container_check_existing(container)
8
8
  log.debug "Checking if container \"#{container}\" is existing"
9
9
 
10
- return false unless docker_check_running
10
+ return false unless docker_check_daemon
11
11
 
12
12
  stdout_str = run _docker_container_cmd_check_existing container
13
13
 
@@ -7,7 +7,7 @@ module DockerContainerCheckNetwork
7
7
  def docker_container_check_network(network)
8
8
  log.debug "Checking if network \"#{network}\" is existing"
9
9
 
10
- return false unless docker_check_running
10
+ return false unless docker_check_daemon
11
11
 
12
12
  stdout_str = run _docker_container_cmd_check_network network
13
13
 
@@ -7,7 +7,7 @@ module DockerContainerCheckOrphaned
7
7
  def docker_container_check_orphaned(container)
8
8
  log.debug "Check if container \"#{container}\" is orphaned"
9
9
 
10
- return false unless docker_check_running
10
+ return false unless docker_check_daemon
11
11
 
12
12
  stdout_str = run _docker_container_cmd_check_orphaned container
13
13
 
@@ -6,7 +6,7 @@ module DockerContainerClean
6
6
  def docker_container_clean
7
7
  log.debug 'Removing all docker containers'
8
8
 
9
- return false unless docker_check_running
9
+ return false unless docker_check_daemon
10
10
 
11
11
  return false if _docker_container_clean_harakiri?
12
12
 
@@ -6,7 +6,8 @@ module Takelage
6
6
  include LoggingModule
7
7
  include SystemModule
8
8
  include ConfigModule
9
- include DockerCheckRunning
9
+ include DockerCheckDaemon
10
+ include DockerCheckSocat
10
11
  include DockerContainerCheckExisting
11
12
  include DockerContainerCheckNetwork
12
13
  include DockerContainerCheckOrphaned
@@ -16,10 +17,9 @@ module Takelage
16
17
  include DockerContainerLogin
17
18
  include DockerContainerClean
18
19
  include DockerContainerPrune
19
- include DockerImageTagLatestLocal
20
- include DockerImageTagListLocal
21
- include DockerImageTagCheckLocal
22
- include DockerImageCheckOutdated
20
+ include DockerImageTagLatest
21
+ include DockerImageTagList
22
+ include DockerImageTagCheck
23
23
  include DockerSocketLib
24
24
  include DockerSocketHost
25
25
  include DockerSocketScheme
@@ -37,7 +37,7 @@ module Takelage
37
37
  @docker_registry = config.active['docker_registry']
38
38
  @username = ENV['USER'] || 'noname'
39
39
  @workdir = Dir.getwd
40
- @hostname = "#{@docker_repo}_#{File.basename(@workdir)}"
40
+ @hostname = _docker_container_lib_hostname
41
41
  @socket_host = docker_socket_host
42
42
  @sockets = docker_socket_scheme
43
43
  end
@@ -6,7 +6,7 @@ module DockerContainerCommand
6
6
  def docker_container_command(command)
7
7
  log.debug 'Running command in container'
8
8
 
9
- return false unless docker_check_running
9
+ return false unless docker_check_daemon
10
10
 
11
11
  docker_socket_start
12
12
  return false unless _docker_container_lib_create_net_and_ctr @hostname
@@ -6,7 +6,7 @@ module DockerContainerDaemon
6
6
  def docker_container_daemon
7
7
  log.debug 'Starting docker container as daemon'
8
8
 
9
- return false unless docker_check_running
9
+ return false unless docker_check_daemon
10
10
 
11
11
  _docker_container_lib_create_net_and_ctr @hostname
12
12
  end
@@ -6,6 +6,14 @@
6
6
  module DockerContainerLib
7
7
  private
8
8
 
9
+ # Create unique docker hostname
10
+ def _docker_container_lib_hostname
11
+ relative_name = "#{@docker_repo}_#{File.basename(@workdir)}"
12
+ absolute_name = "#{@docker_repo}_#{@workdir}"
13
+ digest = Digest::SHA256.bubblebabble absolute_name
14
+ "#{relative_name}_#{digest[0..10]}"
15
+ end
16
+
9
17
  # Create docker container and network.
10
18
  def _docker_container_lib_create_net_and_ctr(name)
11
19
  return false if _docker_container_lib_check_matrjoschka
@@ -115,7 +123,7 @@ module DockerContainerLib
115
123
 
116
124
  # Check if docker image is available
117
125
  def _docker_container_lib_image_available?(image)
118
- return true if docker_image_tag_list_local.include? @docker_tag
126
+ return true if docker_image_tag_list.include? @docker_tag
119
127
 
120
128
  log.error "No local image \"#{image}\" available"
121
129
  log.info "Try: docker pull #{image}"
@@ -6,9 +6,8 @@ module DockerContainerLogin
6
6
  def docker_container_login
7
7
  log.debug 'Logging in to docker container'
8
8
 
9
- return false unless docker_check_running
9
+ return false unless docker_check_daemon
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}\""
@@ -6,7 +6,7 @@ module DockerContainerPrune
6
6
  def docker_container_prune
7
7
  log.debug 'Removing orphaned docker containers'
8
8
 
9
- return false unless docker_check_running
9
+ return false unless docker_check_daemon
10
10
 
11
11
  networks = _docker_container_prune_kill_orphaned_containers
12
12
  _docker_container_lib_remove_networks networks
@@ -6,9 +6,7 @@ module Takelage
6
6
  include LoggingModule
7
7
  include SystemModule
8
8
  include ConfigModule
9
- include DockerCheckRunning
10
- include DockerImageTagListRemote
11
- include DockerImageTagLatestRemote
9
+ include DockerCheckDaemon
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_daemon
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 DockerCheckDaemon
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 'latest', '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,24 @@
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_daemon
11
+
12
+ tags = docker_image_tag_list
13
+
14
+ tag_latest = if tags.include? 'latest'
15
+ 'latest'
16
+ else
17
+ tags[-1]
18
+ end
19
+
20
+ log.debug "Latest docker tag: #{tag_latest}"
21
+
22
+ tag_latest
23
+ end
24
+ 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
@@ -4,14 +4,9 @@
4
4
  module DockerImageUpdate
5
5
  # Backend method for docker image update.
6
6
  def docker_image_update
7
- return false unless docker_check_running
7
+ return false unless docker_check_daemon
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
@@ -6,7 +6,8 @@ module Takelage
6
6
  include LoggingModule
7
7
  include SystemModule
8
8
  include ConfigModule
9
- include DockerCheckRunning
9
+ include DockerCheckDaemon
10
+ include DockerCheckSocat
10
11
  include DockerSocketLib
11
12
  include DockerSocketHost
12
13
  include DockerSocketScheme
@@ -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
@@ -6,7 +6,9 @@ module DockerSocketStart
6
6
  def docker_socket_start
7
7
  log.debug 'Starting sockets for docker container'
8
8
 
9
- return false unless docker_check_running
9
+ return false unless docker_check_daemon
10
+
11
+ return false unless docker_check_socat
10
12
 
11
13
  cmds_start_socket = _docker_socket_lib_get_socket_start_commands 'start'
12
14
 
@@ -6,12 +6,13 @@ module DockerSocketStop
6
6
  def docker_socket_stop
7
7
  log.debug 'Stopping sockets for docker container'
8
8
 
9
- return false unless docker_check_running
9
+ return false unless docker_check_daemon
10
+
11
+ return false unless docker_check_socat
10
12
 
11
13
  # get process list
12
14
  # assuming format: "pid command"
13
- cmd_ps =
14
- config.active['cmd_docker_socket_stop_docker_socket_ps']
15
+ cmd_ps = config.active['cmd_docker_socket_stop_docker_socket_ps']
15
16
 
16
17
  stdout_str = run cmd_ps
17
18
 
data/lib/takelage/version CHANGED
@@ -1 +1 @@
1
- 0.22.2
1
+ 0.24.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.24.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geospin
@@ -226,7 +226,8 @@ files:
226
226
  - lib/takelage/completion/cli.rb
227
227
  - lib/takelage/default.yml
228
228
  - lib/takelage/docker/check/cli.rb
229
- - lib/takelage/docker/check/running.rb
229
+ - lib/takelage/docker/check/daemon.rb
230
+ - lib/takelage/docker/check/socat.rb
230
231
  - lib/takelage/docker/cli.rb
231
232
  - lib/takelage/docker/container/check/cli.rb
232
233
  - lib/takelage/docker/container/check/existing.rb
@@ -239,19 +240,11 @@ files:
239
240
  - lib/takelage/docker/container/lib.rb
240
241
  - lib/takelage/docker/container/login.rb
241
242
  - lib/takelage/docker/container/prune.rb
242
- - lib/takelage/docker/image/check/cli.rb
243
- - lib/takelage/docker/image/check/outdated.rb
244
243
  - 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
244
+ - lib/takelage/docker/image/tag/check.rb
248
245
  - 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
246
+ - lib/takelage/docker/image/tag/latest.rb
247
+ - lib/takelage/docker/image/tag/list.rb
255
248
  - lib/takelage/docker/image/update.rb
256
249
  - lib/takelage/docker/socket/cli.rb
257
250
  - 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