takelage 0.18.1
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 +7 -0
- data/LICENSE +674 -0
- data/README.md +213 -0
- data/bin/tau +6 -0
- data/lib/Thorfile +3 -0
- data/lib/takelage.rb +230 -0
- data/lib/takelage/bit/check/cli.rb +23 -0
- data/lib/takelage/bit/check/workspace.rb +37 -0
- data/lib/takelage/bit/cli.rb +15 -0
- data/lib/takelage/bit/clipboard/cli.rb +73 -0
- data/lib/takelage/bit/clipboard/copy.rb +140 -0
- data/lib/takelage/bit/clipboard/lib.rb +132 -0
- data/lib/takelage/bit/clipboard/paste.rb +57 -0
- data/lib/takelage/bit/clipboard/pull.rb +37 -0
- data/lib/takelage/bit/clipboard/push.rb +37 -0
- data/lib/takelage/bit/scope/add.rb +55 -0
- data/lib/takelage/bit/scope/cli.rb +74 -0
- data/lib/takelage/bit/scope/inbit.rb +13 -0
- data/lib/takelage/bit/scope/list.rb +41 -0
- data/lib/takelage/bit/scope/new.rb +44 -0
- data/lib/takelage/completion/cli.rb +24 -0
- data/lib/takelage/default.yml +68 -0
- data/lib/takelage/docker/check/cli.rb +23 -0
- data/lib/takelage/docker/check/running.rb +23 -0
- data/lib/takelage/docker/cli.rb +18 -0
- data/lib/takelage/docker/container/check/cli.rb +57 -0
- data/lib/takelage/docker/container/check/existing.rb +31 -0
- data/lib/takelage/docker/container/check/network.rb +31 -0
- data/lib/takelage/docker/container/check/orphaned.rb +31 -0
- data/lib/takelage/docker/container/clean.rb +39 -0
- data/lib/takelage/docker/container/cli.rb +114 -0
- data/lib/takelage/docker/container/command.rb +33 -0
- data/lib/takelage/docker/container/daemon.rb +13 -0
- data/lib/takelage/docker/container/lib.rb +160 -0
- data/lib/takelage/docker/container/login.rb +46 -0
- data/lib/takelage/docker/container/prune.rb +30 -0
- data/lib/takelage/docker/image/check/cli.rb +39 -0
- data/lib/takelage/docker/image/check/outdated.rb +40 -0
- data/lib/takelage/docker/image/cli.rb +44 -0
- data/lib/takelage/docker/image/tag/check/cli.rb +48 -0
- data/lib/takelage/docker/image/tag/check/local.rb +42 -0
- data/lib/takelage/docker/image/tag/check/remote.rb +38 -0
- data/lib/takelage/docker/image/tag/cli.rb +15 -0
- data/lib/takelage/docker/image/tag/latest/cli.rb +57 -0
- data/lib/takelage/docker/image/tag/latest/local.rb +20 -0
- data/lib/takelage/docker/image/tag/latest/remote.rb +25 -0
- data/lib/takelage/docker/image/tag/list/cli.rb +53 -0
- data/lib/takelage/docker/image/tag/list/local.rb +19 -0
- data/lib/takelage/docker/image/tag/list/remote.rb +28 -0
- data/lib/takelage/docker/image/update.rb +33 -0
- data/lib/takelage/docker/socket/cli.rb +75 -0
- data/lib/takelage/docker/socket/host.rb +25 -0
- data/lib/takelage/docker/socket/lib.rb +88 -0
- data/lib/takelage/docker/socket/scheme.rb +63 -0
- data/lib/takelage/docker/socket/start.rb +34 -0
- data/lib/takelage/docker/socket/stop.rb +55 -0
- data/lib/takelage/git/check/clean.rb +46 -0
- data/lib/takelage/git/check/cli.rb +49 -0
- data/lib/takelage/git/check/master.rb +26 -0
- data/lib/takelage/git/check/workspace.rb +33 -0
- data/lib/takelage/git/cli.rb +9 -0
- data/lib/takelage/info/cli.rb +9 -0
- data/lib/takelage/info/project/cli.rb +56 -0
- data/lib/takelage/lib/config.rb +114 -0
- data/lib/takelage/lib/logging.rb +47 -0
- data/lib/takelage/lib/project.rb +69 -0
- data/lib/takelage/lib/subcmd.rb +16 -0
- data/lib/takelage/lib/system.rb +104 -0
- data/lib/takelage/self/cli.rb +43 -0
- data/lib/takelage/self/config/cli.rb +82 -0
- data/lib/takelage/self/list.rb +30 -0
- data/lib/takelage/version +1 -0
- metadata +298 -0
@@ -0,0 +1,53 @@
|
|
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
|
@@ -0,0 +1,19 @@
|
|
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
|
@@ -0,0 +1,28 @@
|
|
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
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# takelage docker image uppdate
|
4
|
+
module DockerImageUpdate
|
5
|
+
# Backend method for docker image update.
|
6
|
+
def docker_image_update
|
7
|
+
return false unless docker_check_running
|
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
|
15
|
+
|
16
|
+
cmd_docker_remove_dangling =
|
17
|
+
config.active['cmd_docker_image_update_docker_remove_dangling']
|
18
|
+
|
19
|
+
run_and_exit "#{cmd_docker_pull_latest} && #{cmd_docker_remove_dangling}"
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
# Prepare dpcker pull latest command.
|
25
|
+
def _docker_image_update_cmd_docker_pull_latest(tag)
|
26
|
+
format(
|
27
|
+
config.active['cmd_docker_image_update_docker_pull_latest'],
|
28
|
+
docker_user: @docker_user,
|
29
|
+
docker_repo: @docker_repo,
|
30
|
+
tag_latest_remote: tag
|
31
|
+
)
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Takelage
|
4
|
+
# takelage docker socket
|
5
|
+
class DockerSocket < SubCommandBase
|
6
|
+
include LoggingModule
|
7
|
+
include SystemModule
|
8
|
+
include ConfigModule
|
9
|
+
include DockerCheckRunning
|
10
|
+
include DockerSocketLib
|
11
|
+
include DockerSocketHost
|
12
|
+
include DockerSocketScheme
|
13
|
+
include DockerSocketStart
|
14
|
+
include DockerSocketStop
|
15
|
+
|
16
|
+
# Initialize docker socket
|
17
|
+
def initialize(args = [], local_options = {}, configuration = {})
|
18
|
+
# initialize thor parent class
|
19
|
+
super args, local_options, configuration
|
20
|
+
|
21
|
+
@socket_host = docker_socket_host
|
22
|
+
@sockets = docker_socket_scheme
|
23
|
+
end
|
24
|
+
|
25
|
+
#
|
26
|
+
# docker socket host
|
27
|
+
#
|
28
|
+
desc 'host', 'Print docker socket host ip address'
|
29
|
+
long_desc <<-LONGDESC.gsub("\n", "\x5")
|
30
|
+
Print docker socket host ip address
|
31
|
+
LONGDESC
|
32
|
+
# Print docker socket host ip address.
|
33
|
+
def host
|
34
|
+
say @socket_host
|
35
|
+
true
|
36
|
+
end
|
37
|
+
|
38
|
+
#
|
39
|
+
# docker socket scheme
|
40
|
+
#
|
41
|
+
desc 'scheme', 'Print docker socket scheme'
|
42
|
+
long_desc <<-LONGDESC.gsub("\n", "\x5")
|
43
|
+
Print docker socket scheme
|
44
|
+
LONGDESC
|
45
|
+
# Print docker socket scheme.
|
46
|
+
def scheme
|
47
|
+
say hash_to_yaml(@sockets)
|
48
|
+
true
|
49
|
+
end
|
50
|
+
|
51
|
+
#
|
52
|
+
# docker socket start
|
53
|
+
#
|
54
|
+
desc 'start', 'Start sockets for docker container'
|
55
|
+
long_desc <<-LONGDESC.gsub("\n", "\x5")
|
56
|
+
Start sockets for docker container
|
57
|
+
LONGDESC
|
58
|
+
# Start sockets for docker container.
|
59
|
+
def start
|
60
|
+
exit docker_socket_start
|
61
|
+
end
|
62
|
+
|
63
|
+
#
|
64
|
+
# docker socket stop
|
65
|
+
#
|
66
|
+
desc 'stop', 'Stop sockets for docker container'
|
67
|
+
long_desc <<-LONGDESC.gsub("\n", "\x5")
|
68
|
+
Stop sockets for docker container
|
69
|
+
LONGDESC
|
70
|
+
# Stop sockets for docker container.
|
71
|
+
def stop
|
72
|
+
exit docker_socket_stop
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# takelage docker socket host
|
4
|
+
module DockerSocketHost
|
5
|
+
# Backend method for docker socket host.
|
6
|
+
def docker_socket_host
|
7
|
+
log.debug 'Getting docker socket host ip address'
|
8
|
+
|
9
|
+
socket_host = '127.0.0.1'
|
10
|
+
|
11
|
+
addr_infos = Socket.getifaddrs
|
12
|
+
|
13
|
+
# if interface docker0 exists (== linux host)
|
14
|
+
# then return the ip address
|
15
|
+
addr_infos.each do |addr_info|
|
16
|
+
if addr_info.name == 'docker0'
|
17
|
+
socket_host = addr_info.addr.ip_address if addr_info.addr.ipv4?
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
log.debug "Docker socket host ip address is \"#{socket_host}\""
|
22
|
+
|
23
|
+
socket_host
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,88 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# takelage docker socket lib
|
4
|
+
module DockerSocketLib
|
5
|
+
private
|
6
|
+
|
7
|
+
# Get socket start commands.
|
8
|
+
# sockets_up is a boolean which defines if the sockets need to be up
|
9
|
+
# to be included in the resulting array of socket start commands
|
10
|
+
def _docker_socket_lib_get_socket_start_commands(mode)
|
11
|
+
cmds_start_socket = []
|
12
|
+
|
13
|
+
# loop over sockets
|
14
|
+
@sockets.each do |socket, socket_config|
|
15
|
+
host = socket_config['host']
|
16
|
+
port = socket_config['port']
|
17
|
+
path = socket_config['path']
|
18
|
+
|
19
|
+
cmd = _docker_socket_lib_get_start_cmd(mode, socket, host, port, path)
|
20
|
+
cmds_start_socket.push cmd if cmd
|
21
|
+
end
|
22
|
+
|
23
|
+
cmds_start_socket
|
24
|
+
end
|
25
|
+
|
26
|
+
# Get socket start command
|
27
|
+
def _docker_socket_lib_get_start_cmd(mode, socket, host, port, path)
|
28
|
+
if mode == 'start'
|
29
|
+
unless _docker_socket_lib_socket_up? socket, host, port, path
|
30
|
+
return _docker_socket_lib_start_cmd(host, port, path)
|
31
|
+
end
|
32
|
+
elsif _docker_socket_lib_socket_up? socket, host, port, path
|
33
|
+
return _docker_socket_lib_start_cmd(host, port, path)
|
34
|
+
end
|
35
|
+
nil
|
36
|
+
end
|
37
|
+
|
38
|
+
# Get socket start command.
|
39
|
+
def _docker_socket_lib_start_cmd(host, port, path)
|
40
|
+
format(
|
41
|
+
config.active['cmd_docker_socket_get_start'],
|
42
|
+
host: host,
|
43
|
+
port: port,
|
44
|
+
path: path
|
45
|
+
)
|
46
|
+
end
|
47
|
+
|
48
|
+
# Check if a socket is available by trying to connect to it via TCP
|
49
|
+
def _docker_socket_lib_socket_up?(socket, host, port, path)
|
50
|
+
error_message = _docker_socket_lib_error_msg socket, host, port, path
|
51
|
+
begin
|
52
|
+
Timeout.timeout(1) do
|
53
|
+
_docker_socket_lib_socket_reachable? socket, host, port, error_message
|
54
|
+
end
|
55
|
+
rescue Timeout::Error
|
56
|
+
log.debug "Timeout: #{error_message}"
|
57
|
+
false
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
# Create error message.
|
62
|
+
def _docker_socket_lib_error_msg(socket, host, port, path)
|
63
|
+
'failed to connect to ' \
|
64
|
+
"socket \"#{socket}\" " \
|
65
|
+
"using host \"#{host}\", " \
|
66
|
+
"port \"#{port}\", " \
|
67
|
+
"path \"#{path}\""
|
68
|
+
end
|
69
|
+
|
70
|
+
# Test socket.
|
71
|
+
# rubocop:disable Metrics/MethodLength
|
72
|
+
def _docker_socket_lib_socket_reachable?(socket, host, port, error_message)
|
73
|
+
begin
|
74
|
+
s = TCPSocket.new host, port
|
75
|
+
s.close
|
76
|
+
log.debug "Socket \"#{socket}\" up"
|
77
|
+
return true
|
78
|
+
rescue Errno::ECONNREFUSED
|
79
|
+
log.debug "Connection refused: #{error_message}"
|
80
|
+
rescue Errno::EHOSTUNREACH
|
81
|
+
log.debug "Host unreachable: #{error_message}"
|
82
|
+
rescue SocketError
|
83
|
+
log.debug "Socket error: #{error_message}"
|
84
|
+
end
|
85
|
+
false
|
86
|
+
end
|
87
|
+
# rubocop:enable Metrics/MethodLength
|
88
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# takelage docker socket scheme
|
4
|
+
module DockerSocketScheme
|
5
|
+
# Backend method for docker socket scheme.
|
6
|
+
def docker_socket_scheme
|
7
|
+
log.debug 'Getting docker socket scheme'
|
8
|
+
|
9
|
+
socket_scheme = _socket_get_scheme _socket_get_config
|
10
|
+
|
11
|
+
log.debug "Docker socket scheme is \n\"\"\"\n#{hash_to_yaml socket_scheme}\"\"\""
|
12
|
+
|
13
|
+
socket_scheme
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
# Get docker socket config.
|
19
|
+
def _socket_get_config
|
20
|
+
socket_config = {
|
21
|
+
'docker_path' => _socket_get_docker_daemon_path,
|
22
|
+
'docker_port' => config.active['docker_socket_docker_daemon_port'],
|
23
|
+
'gpg_path' => _socket_get_agent_socket_path,
|
24
|
+
'gpg_port' => config.active['docker_socket_gpg_agent_port'],
|
25
|
+
'ssh_path' => _socket_get_agent_ssh_socket_path,
|
26
|
+
'ssh_port' => config.active['docker_socket_gpg_ssh_agent_port']
|
27
|
+
}
|
28
|
+
|
29
|
+
socket_config
|
30
|
+
end
|
31
|
+
|
32
|
+
# Get docker socket path.
|
33
|
+
def _socket_get_docker_daemon_path
|
34
|
+
'/var/run/docker.sock'
|
35
|
+
end
|
36
|
+
|
37
|
+
# Get gpg agent socket path.
|
38
|
+
def _socket_get_agent_socket_path
|
39
|
+
cmd_agent_socket_path =
|
40
|
+
config.active['cmd_docker_socket_config_agent_socket_path']
|
41
|
+
(run cmd_agent_socket_path).chomp
|
42
|
+
end
|
43
|
+
|
44
|
+
# Get gpg ssh agent socket path.
|
45
|
+
def _socket_get_agent_ssh_socket_path
|
46
|
+
cmd_agent_ssh_socket_path =
|
47
|
+
config.active['cmd_docker_socket_config_agent_ssh_socket_path']
|
48
|
+
(run cmd_agent_ssh_socket_path).chomp
|
49
|
+
end
|
50
|
+
|
51
|
+
# Create socket scheme.
|
52
|
+
def _socket_get_scheme(socket_config)
|
53
|
+
{ 'docker-daemon' => { 'path' => socket_config['docker_path'],
|
54
|
+
'host' => @socket_host,
|
55
|
+
'port' => socket_config['docker_port'] },
|
56
|
+
'gpg-agent' => { 'path' => socket_config['gpg_path'],
|
57
|
+
'host' => @socket_host,
|
58
|
+
'port' => socket_config['gpg_port'] },
|
59
|
+
'gpg-ssh-agent' => { 'path' => socket_config['ssh_path'],
|
60
|
+
'host' => @socket_host,
|
61
|
+
'port' => socket_config['ssh_port'] } }
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# takelage docker socket start
|
4
|
+
module DockerSocketStart
|
5
|
+
# Backend method for docker socket start.
|
6
|
+
def docker_socket_start
|
7
|
+
log.debug 'Starting sockets for docker container'
|
8
|
+
|
9
|
+
return false unless docker_check_running
|
10
|
+
|
11
|
+
cmds_start_socket = _docker_socket_lib_get_socket_start_commands 'start'
|
12
|
+
|
13
|
+
return true if cmds_start_socket.empty?
|
14
|
+
|
15
|
+
_docker_socket_start_get_sudo
|
16
|
+
|
17
|
+
cmds_start_socket.each do |cmd_start_socket|
|
18
|
+
run_and_fork cmd_start_socket
|
19
|
+
end
|
20
|
+
|
21
|
+
true
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
# Get sudo.
|
27
|
+
def _docker_socket_start_get_sudo
|
28
|
+
log.debug 'Request sudo so that ' \
|
29
|
+
'subsequent background tasks run without delay'
|
30
|
+
cmd_sudo_true =
|
31
|
+
config.active['cmd_docker_socket_start_sudo_true']
|
32
|
+
run cmd_sudo_true
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# takelage docker socket stop
|
4
|
+
module DockerSocketStop
|
5
|
+
# Backend method for docker socket stop.
|
6
|
+
def docker_socket_stop
|
7
|
+
log.debug 'Stopping sockets for docker container'
|
8
|
+
|
9
|
+
return false unless docker_check_running
|
10
|
+
|
11
|
+
# get process list
|
12
|
+
# assuming format: "pid command"
|
13
|
+
cmd_ps =
|
14
|
+
config.active['cmd_docker_socket_stop_docker_socket_ps']
|
15
|
+
|
16
|
+
stdout_str = run cmd_ps
|
17
|
+
|
18
|
+
cmds_start_socket = _docker_socket_lib_get_socket_start_commands 'stop'
|
19
|
+
|
20
|
+
# loop over process list
|
21
|
+
stdout_str.split(/\n+/).each do |process|
|
22
|
+
_docker_socket_stop_kill_process process, cmds_start_socket
|
23
|
+
end
|
24
|
+
|
25
|
+
true
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
# Stop process.
|
31
|
+
def _docker_socket_stop_kill_process(process, cmds_start_socket)
|
32
|
+
# split processes in process id and process command
|
33
|
+
pid_command = process.strip.split(/ /, 2)
|
34
|
+
pid = pid_command[0]
|
35
|
+
command = pid_command[1]
|
36
|
+
|
37
|
+
# loop over socket start commands
|
38
|
+
cmds_start_socket.each do |cmd_start_socket|
|
39
|
+
next unless command == cmd_start_socket
|
40
|
+
|
41
|
+
_docker_socket_stop_kill_pid pid
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
# Kill process.
|
46
|
+
def _docker_socket_stop_kill_pid(pid)
|
47
|
+
log.debug "Killing PID #{pid}"
|
48
|
+
cmd_kill =
|
49
|
+
format(
|
50
|
+
config.active['cmd_docker_socket_stop_docker_socket_kill'],
|
51
|
+
pid: pid
|
52
|
+
)
|
53
|
+
run cmd_kill
|
54
|
+
end
|
55
|
+
end
|