takelage 0.22.2 → 0.23.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 +4 -4
- data/lib/takelage.rb +3 -12
- data/lib/takelage/default.yml +3 -3
- data/lib/takelage/docker/container/cli.rb +3 -4
- data/lib/takelage/docker/container/lib.rb +1 -1
- data/lib/takelage/docker/container/login.rb +0 -13
- data/lib/takelage/docker/image/cli.rb +0 -5
- data/lib/takelage/docker/image/tag/check.rb +42 -0
- data/lib/takelage/docker/image/tag/cli.rb +59 -6
- data/lib/takelage/docker/image/tag/latest.rb +20 -0
- data/lib/takelage/docker/image/tag/list.rb +19 -0
- data/lib/takelage/docker/image/update.rb +3 -9
- data/lib/takelage/docker/socket/host.rb +3 -4
- data/lib/takelage/version +1 -1
- metadata +4 -12
- data/lib/takelage/docker/image/check/cli.rb +0 -39
- data/lib/takelage/docker/image/check/outdated.rb +0 -40
- data/lib/takelage/docker/image/tag/check/cli.rb +0 -48
- data/lib/takelage/docker/image/tag/check/local.rb +0 -42
- data/lib/takelage/docker/image/tag/check/remote.rb +0 -38
- data/lib/takelage/docker/image/tag/latest/cli.rb +0 -57
- data/lib/takelage/docker/image/tag/latest/local.rb +0 -20
- data/lib/takelage/docker/image/tag/latest/remote.rb +0 -25
- data/lib/takelage/docker/image/tag/list/cli.rb +0 -53
- data/lib/takelage/docker/image/tag/list/local.rb +0 -19
- 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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: be86ab05e3007ca479cf08765723c1dd3f28c229a78de2be07618a7e30278577
|
4
|
+
data.tar.gz: 03037ef870580fa492323163cfb1754a1059329d6cb5ed1d384bfe7a690be21e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f3dbb9cd02e027bffafc7e0d5e9060746bf1164e7a394810f0b010298db8039923bad224a01c4b625294a1618dd326d477478a3c24e3067a79edbb9474eba6c5
|
7
|
+
data.tar.gz: a6c473fabe3c219a3a10f1c7102b7f37bb605ec5ec30791aaef2470eee31f5004f19695f913658168ed7f7c2a6c30ce8ed17f4b8f7b560c900c20c6b7770e621
|
data/lib/takelage.rb
CHANGED
@@ -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
|
56
|
-
require_relative 'takelage/docker/image/tag/
|
57
|
-
require_relative 'takelage/docker/image/tag/
|
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'
|
data/lib/takelage/default.yml
CHANGED
@@ -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
|
-
|
45
|
-
|
46
|
-
cmd_docker_image_update_docker_pull_latest: 'docker pull %{docker_user}/%{docker_repo}
|
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
|
20
|
-
include
|
21
|
-
include
|
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
|
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
|
-
|
7
|
-
|
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
|
-
|
10
|
-
|
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
|
-
|
13
|
-
|
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
|
-
|
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
|
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
|
-
|
28
|
-
|
29
|
-
|
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
|
data/lib/takelage/version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
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.
|
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
|
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
|
250
|
-
- lib/takelage/docker/image/tag/
|
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
|