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