takeltau 0.43.10 → 0.43.15

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1e3cfcc5190c832bb598a7995d870a9ad8ffbd2d80cc27d40716a2c8f48234e9
4
- data.tar.gz: 2329865f99624b7107046aeb8662ba7116e6ab2a5b92045f11a39bde8d38999a
3
+ metadata.gz: bffbfd83d32f80c65710d44484f6efc3ca2cd1aedecfd045c48acc7d7662476f
4
+ data.tar.gz: 49032edfaa569d46693240c6776aad04ce234ff8ffdc63fc2609d2f97b556c4b
5
5
  SHA512:
6
- metadata.gz: c85f8b70f10c8982e88bb08bab002c22e5efdaa4dc8e4652ba87733ab9c0b8e34dd38923e402a8564de1a827fe487877b56733a19d7574f99f26a5d08f6419c4
7
- data.tar.gz: b64fe24cc6176b74ebe52f7d6010103bf1b060cd411dacb59c207999839971379a38409e0d65b0947dbd30136af01c7f8841c329e74294203ef774770ef4bd32
6
+ metadata.gz: a3809662ed4e64854cf7324862816dd26c172da554e084d0d8504eff6a4a87d8bb177a082ce28ccb04c1e24350e13441a798dce667cf0472c4f73e1184190504
7
+ data.tar.gz: 73a636ac6b86704d68747ce8f278680df734289b5a429d38a37f4eb8ad8320df29866cbb0db13078f972e15f8d9264c8918962c9632e63bad92fe0efccf6240e
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  cmd_docker: 'docker'
3
- cmd_docker_check_daemon_docker_info: '%{docker} info'
3
+ cmd_docker_check_daemon_docker_version: '%{docker} --version'
4
4
  cmd_docker_container_check_existing_docker_ps: '%{docker} ps --filter name=^%{container}$ --quiet'
5
5
  cmd_docker_container_check_network_docker_network: '%{docker} network ls --quiet --filter name=^%{network}$'
6
6
  cmd_docker_container_check_orphaned_docker_exec: '%{docker} exec --interactive %{container} ps a'
@@ -87,9 +87,11 @@ ship_takelship_yml: '%{pwd}/%{ship_data_dir}/compose/projects/takelship.yml'
87
87
  ship_podman_localhost: '127.0.0.1'
88
88
  ship_docker_host: '32375'
89
89
  ship_default_docker_host: '32375'
90
- cmd_ship_project_start_docker_run_nonprivileged: '%{docker} run --rm --interactive %{image} %{command}'
91
- cmd_ship_project_start_docker_run_privileged: '%{docker} run --privileged --rm --detach --name %{ship_hostname} --hostname %{ship_hostname} %{ship_env} %{ports} --volume ./%{ship_data_dir}:/home/podman/takelship %{image} %{command}'
92
- cmd_ship_project_start_docker_stop: '%{docker} stop %{ship_hostname}'
93
- cmd_ship_container_check_existing_docker_ps: '%{docker} ps --filter name=^%{ship_name}$ --quiet'
94
- cmd_ship_container_docker: '%{docker} exec --interactive %{tty} %{ship_hostname} %{command}'
90
+ cmd_ship_docker: 'docker'
91
+ cmd_ship_project_start_docker_run_nonprivileged: '%{ship_docker} run --rm --interactive %{image} %{command}'
92
+ cmd_ship_project_start_docker_run_privileged: '%{ship_docker} run --privileged --rm --detach --name %{ship_hostname} --hostname %{ship_hostname} %{ship_env} %{ports} --volume ./%{ship_data_dir}:/home/podman/takelship %{image} %{command}'
93
+ cmd_ship_project_start_docker_stop: '%{ship_docker} stop %{ship_hostname}'
94
+ cmd_ship_container_check_existing_docker_ps: '%{ship_docker} ps --filter name=^%{ship_name}$ --quiet'
95
+ cmd_ship_container_docker: '%{ship_docker} exec --interactive %{tty} %{ship_hostname} %{command}'
95
96
  cmd_ship_container_login: 'bash'
97
+ cmd_docker_container_get_mounted_dir: '%{ship_docker} container inspect %{ship_hostname} --format "{{ (index .Mounts 0).Source }}"'
@@ -6,7 +6,7 @@ module DockerCheckDaemon
6
6
  # @return [Boolean] is the docker daemon running?
7
7
  # rubocop:disable Metrics/MethodLength
8
8
  # rubocop:disable Metrics/AbcSize
9
- def docker_check_daemon
9
+ def docker_check_daemon(docker = 'cmd_docker')
10
10
  return true if @docker_daemon_running
11
11
 
12
12
  return false unless command_available_else_error? config.active['cmd_docker']
@@ -14,8 +14,8 @@ module DockerCheckDaemon
14
14
  log.debug 'Check if the docker daemon is running'
15
15
 
16
16
  cmd_docker_info = format(
17
- config.active['cmd_docker_check_daemon_docker_info'],
18
- docker: config.active['cmd_docker']
17
+ config.active['cmd_docker_check_daemon_docker_version'],
18
+ docker: config.active[docker]
19
19
  )
20
20
  status = try cmd_docker_info
21
21
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # tau docker container list
4
4
  module DockerContainerList
5
- # Backend method for docker container prune.
5
+ # List docker containers.
6
6
  def docker_container_list
7
7
  log.debug 'List docker containers'
8
8
 
@@ -25,6 +25,12 @@ module Takeltau
25
25
  Takeltau::SelfConfig.new.active
26
26
  end
27
27
 
28
+ desc 'list', 'Alias for tau ship container list'
29
+ # ship list: {Takeltau::ShipContainer#list}
30
+ def list
31
+ Takeltau::ShipContainer.new.list
32
+ end
33
+
28
34
  desc 'login', 'Alias for tau ship container login'
29
35
  # ship login: {Takeltau::ShipContainer#login}
30
36
  def login
@@ -8,7 +8,7 @@ module ShipContainerCheckExisting
8
8
  ship_hostname = _ship_container_lib_ship_hostname
9
9
  log.debug "Checking if takelship \"#{ship_hostname}\" is existing"
10
10
 
11
- return false unless docker_check_daemon
11
+ return false unless docker_check_daemon 'cmd_ship_docker'
12
12
 
13
13
  stdout_str = run _ship_container_cmd_check_existing ship_hostname
14
14
 
@@ -27,7 +27,7 @@ module ShipContainerCheckExisting
27
27
  def _ship_container_cmd_check_existing(ship_hostname)
28
28
  format(
29
29
  config.active['cmd_ship_container_check_existing_docker_ps'],
30
- docker: config.active['cmd_docker'],
30
+ ship_docker: config.active['cmd_ship_docker'],
31
31
  ship_name: ship_hostname
32
32
  )
33
33
  end
@@ -7,9 +7,11 @@ module Takeltau
7
7
  include SystemModule
8
8
  include ConfigModule
9
9
  include DockerCheckDaemon
10
+ include DockerContainerLib
10
11
  include ShipInfoLib
11
12
  include ShipContainerCheckExisting
12
13
  include ShipContainerLib
14
+ include ShipContainerList
13
15
  include ShipContainerLogin
14
16
  include ShipContainerPodman
15
17
  include ShipContainerUpdate
@@ -17,14 +19,26 @@ module Takeltau
17
19
  desc 'check [COMMAND]', 'Check takelship container'
18
20
  subcommand 'check', ShipContainerCheck
19
21
 
22
+ #
23
+ # ship container list
24
+ #
25
+ desc 'list', 'list command'
26
+ long_desc <<-LONGDESC.gsub("\n", "\x5")
27
+ Run list command
28
+ LONGDESC
29
+ # Run list command.
30
+ def list
31
+ say ship_container_list
32
+ end
33
+
20
34
  #
21
35
  # ship container login
22
36
  #
23
- desc 'login', 'Run login command'
37
+ desc 'login', 'Log in to a takelship'
24
38
  long_desc <<-LONGDESC.gsub("\n", "\x5")
25
- Run login command
39
+ Log in to a takelship
26
40
  LONGDESC
27
- # Run login command.
41
+ # Log in to a takelship.
28
42
  def login
29
43
  ship_container_login
30
44
  end
@@ -6,11 +6,11 @@ module ShipContainerLib
6
6
 
7
7
  # Run nonprivileged docker command
8
8
  def _ship_container_lib_docker_nonprivileged(command)
9
- return false unless docker_check_daemon
9
+ return false unless docker_check_daemon 'cmd_ship_docker'
10
10
 
11
11
  cmd_docker_run_command = format(
12
12
  config.active['cmd_ship_project_start_docker_run_nonprivileged'],
13
- docker: config.active['cmd_docker'],
13
+ ship_docker: config.active['cmd_ship_docker'],
14
14
  image: _ship_container_lib_image,
15
15
  command: command
16
16
  )
@@ -21,7 +21,7 @@ module ShipContainerLib
21
21
  # rubocop:disable Metrics/AbcSize
22
22
  # rubocop:disable Metrics/MethodLength
23
23
  def _ship_container_lib_docker_privileged(ports, command)
24
- return false unless docker_check_daemon
24
+ return false unless docker_check_daemon 'cmd_ship_docker'
25
25
 
26
26
  ship_data_dir = config.active['ship_data_dir']
27
27
  ship_env = config.active['ship_env']
@@ -29,7 +29,7 @@ module ShipContainerLib
29
29
  ports = config.active['ports'] unless config.active['ship_ports'].empty?
30
30
  cmd_docker_run_command = format(
31
31
  config.active['cmd_ship_project_start_docker_run_privileged'],
32
- docker: config.active['cmd_docker'],
32
+ ship_docker: config.active['cmd_ship_docker'],
33
33
  ship_hostname: _ship_container_lib_ship_hostname,
34
34
  ship_env: ship_env,
35
35
  ports: ports,
@@ -39,16 +39,17 @@ module ShipContainerLib
39
39
  )
40
40
  run cmd_docker_run_command
41
41
  end
42
+
42
43
  # rubocop:enable Metrics/MethodLength
43
44
  # rubocop:enable Metrics/AbcSize
44
45
 
45
46
  # Run a docker command in a takelship container
46
47
  def _ship_container_lib_docker(command, tty = '--tty')
47
- return false unless docker_check_daemon
48
+ return false unless docker_check_daemon 'cmd_ship_docker'
48
49
 
49
50
  cmd_docker_run_command = format(
50
51
  config.active['cmd_ship_container_docker'],
51
- docker: config.active['cmd_docker'],
52
+ ship_docker: config.active['cmd_ship_docker'],
52
53
  ship_hostname: _ship_container_lib_ship_hostname,
53
54
  tty: tty,
54
55
  command: command
@@ -58,13 +59,13 @@ module ShipContainerLib
58
59
 
59
60
  # Run takelship docker stop command
60
61
  def _ship_container_lib_docker_stop
61
- return false unless docker_check_daemon
62
+ return false unless docker_check_daemon 'cmd_ship_docker'
62
63
 
63
64
  return false unless ship_container_check_existing
64
65
 
65
66
  cmd_docker_stop_command = format(
66
67
  config.active['cmd_ship_project_start_docker_stop'],
67
- docker: config.active['cmd_docker'],
68
+ ship_docker: config.active['cmd_ship_docker'],
68
69
  ship_hostname: _ship_container_lib_ship_hostname
69
70
  )
70
71
  run cmd_docker_stop_command
@@ -100,4 +101,36 @@ module ShipContainerLib
100
101
  end
101
102
  publish.join(' ')
102
103
  end
104
+
105
+ # Get all takelship containers.
106
+ # @return [Array] list of takelship containers
107
+ def _ship_container_lib_get_containers
108
+ ship_name = config.active['ship_name']
109
+ log.debug "Getting all #{ship_name} containers"
110
+
111
+ cmd_docker_get = format(
112
+ config.active['cmd_docker_container_get_containers'],
113
+ docker: config.active['cmd_docker'],
114
+ docker_repo: ship_name
115
+ )
116
+
117
+ # convert stdout lines to array and return array
118
+ (run cmd_docker_get).split(/\n+/)
119
+ end
120
+
121
+ # Get the mounted takelship directory
122
+ def _ship_container_lib_get_mounted_dir
123
+ ship_hostname = _ship_container_lib_ship_hostname
124
+ log.debug 'Getting mounted directory from ' \
125
+ "takelship container \"#{ship_hostname}\""
126
+
127
+ cmd_get_mounted_dir = format(
128
+ config.active['cmd_docker_container_get_mounted_dir'],
129
+ ship_docker: config.active['cmd_ship_docker'],
130
+ docker: config.active['cmd_ship_docker'],
131
+ ship_hostname: ship_hostname
132
+ )
133
+
134
+ run cmd_get_mounted_dir
135
+ end
103
136
  end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ # tau ship container list
4
+ module ShipContainerList
5
+ # List takelship containers.
6
+ def ship_container_list
7
+ log.debug 'List takelship containers'
8
+
9
+ return false unless docker_check_daemon 'cmd_ship_docker'
10
+
11
+ _ship_container_list_get_inventory.to_yaml
12
+ end
13
+
14
+ private
15
+
16
+ # Get the current inventory
17
+ def _ship_container_list_get_inventory
18
+ ship_name = config.active['ship_name']
19
+ inventory = _ship_container_list_new_inventory ship_name
20
+ _ship_container_lib_get_containers.each do |container|
21
+ name = _docker_container_lib_get_container_name_by_id container
22
+ dir = _ship_container_lib_get_mounted_dir.strip
23
+ inventory[ship_name]['hosts'] << { name => dir }
24
+ end
25
+ inventory
26
+ end
27
+
28
+ # Create a new inventory
29
+ def _ship_container_list_new_inventory(ship_name)
30
+ {
31
+ ship_name => {
32
+ 'hosts' => []
33
+ }
34
+ }
35
+ end
36
+ end
@@ -4,7 +4,7 @@
4
4
  module ShipContainerLogin
5
5
  # Run a login command in a takelship
6
6
  def ship_container_login
7
- return false unless docker_check_daemon
7
+ return false unless docker_check_daemon 'cmd_ship_docker'
8
8
 
9
9
  return false unless ship_container_check_existing
10
10
 
@@ -4,7 +4,7 @@
4
4
  module ShipContainerPodman
5
5
  # Run a podman command in a takelship
6
6
  def ship_container_podman(args)
7
- return false unless docker_check_daemon
7
+ return false unless docker_check_daemon 'cmd_ship_docker'
8
8
 
9
9
  return false unless ship_container_check_existing
10
10
 
@@ -4,7 +4,7 @@
4
4
  module ShipContainerUpdate
5
5
  # Update takelship image.
6
6
  def ship_container_update
7
- return false unless docker_check_daemon
7
+ return false unless docker_check_daemon 'cmd_ship_docker'
8
8
 
9
9
  cmd_docker_pull = _ship_container_update_cmd_docker_pull
10
10
 
@@ -4,7 +4,7 @@
4
4
  module ShipProjectStart
5
5
  # Start a takelship
6
6
  def ship_project_start(project)
7
- return false unless docker_check_daemon
7
+ return false unless docker_check_daemon 'cmd_ship_docker'
8
8
 
9
9
  return false if _docker_container_lib_check_matrjoschka
10
10
 
data/lib/takeltau/version CHANGED
@@ -1 +1 @@
1
- 0.43.10
1
+ 0.43.15
data/lib/takeltau.rb CHANGED
@@ -88,6 +88,7 @@ require_relative 'takeltau/ship/container/lib'
88
88
  require_relative 'takeltau/ship/container/check/existing'
89
89
  require_relative 'takeltau/ship/container/check/cli'
90
90
  require_relative 'takeltau/ship/info/lib'
91
+ require_relative 'takeltau/ship/container/list'
91
92
  require_relative 'takeltau/ship/container/login'
92
93
  require_relative 'takeltau/ship/container/podman'
93
94
  require_relative 'takeltau/ship/container/update'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: takeltau
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.43.10
4
+ version: 0.43.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takelwerk
@@ -290,6 +290,7 @@ files:
290
290
  - lib/takeltau/ship/container/check/existing.rb
291
291
  - lib/takeltau/ship/container/cli.rb
292
292
  - lib/takeltau/ship/container/lib.rb
293
+ - lib/takeltau/ship/container/list.rb
293
294
  - lib/takeltau/ship/container/login.rb
294
295
  - lib/takeltau/ship/container/podman.rb
295
296
  - lib/takeltau/ship/container/update.rb