Page MenuHomeSoftware Heritage

swarm.rb
No OneTemporary

swarm.rb

# frozen_string_literal: true
shared_examples 'swarm' do |_title, params, facts, defaults|
ensure_value = params['ensure']
init = params['init']
join = params['join']
advertise_addr = params['advertise_addr']
autolock = params['autolock']
cert_expiry = params['cert_expiry']
default_addr_pool = params['default_addr_pool']
default_addr_pool_mask_length = params['default_addr_pool_mask_length']
dispatcher_heartbeat = params['dispatcher_heartbeat']
external_ca = params['external_ca']
force_new_cluster = params['force_new_cluster']
listen_addr = params['listen_addr']
max_snapshots = params['max_snapshots']
snapshot_interval = params['snapshot_interval']
token = params['token']
manager_ip = params['manager_ip']
if facts[:os]['family'] == 'windows'
exec_environment = "PATH=#{facts['docker_program_files_path']}/Docker/"
exec_path = ["#{facts['docker_program_files_path']}/Docker/"]
exec_timeout = 3000
exec_provider = 'powershell'
unless_init = '$info = docker info | select-string -pattern "Swarm: active"
if ($info -eq $null) { Exit 1 } else { Exit 0 }'
unless_join = '$info = docker info | select-string -pattern "Swarm: active"
if ($info -eq $null) { Exit 1 } else { Exit 0 }'
onlyif_leave = '$info = docker info | select-string -pattern "Swarm: active"
if ($info -eq $null) { Exit 1 } else { Exit 0 }'
else
exec_environment = 'HOME=/root'
exec_path = ['/bin', '/usr/bin']
exec_timeout = 0
exec_provider = nil
unless_init = 'docker info | grep -w "Swarm: active"'
unless_join = 'docker info | grep -w "Swarm: active"'
onlyif_leave = 'docker info | grep -w "Swarm: active"'
end
docker_command = "#{defaults['docker_command']} swarm"
if init
docker_swarm_init_flags = get_docker_swarm_init_flags(
'init' => init,
'advertise_addr' => advertise_addr,
'autolock' => autolock,
'cert_expiry' => cert_expiry,
'dispatcher_heartbeat' => dispatcher_heartbeat,
'default_addr_pool' => default_addr_pool,
'default_addr_pool_mask_length' => default_addr_pool_mask_length,
'external_ca' => external_ca,
'force_new_cluster' => force_new_cluster,
'listen_addr' => listen_addr,
'max_snapshots' => max_snapshots,
'snapshot_interval' => snapshot_interval,
)
exec_init = "#{docker_command} #{docker_swarm_init_flags}"
it {
is_expected.to contain_exec('Swarm init').with(
'command' => exec_init,
'environment' => exec_environment,
'path' => exec_path,
'provider' => exec_provider,
'timeout' => exec_timeout,
'unless' => unless_init,
)
}
end
if join
docker_swarm_join_flags = get_docker_swarm_join_flags(
'join' => join,
'advertise_addr' => advertise_addr,
'listen_addr' => listen_addr,
'token' => token,
)
exec_join = "#{docker_command} #{docker_swarm_join_flags} #{manager_ip}"
it {
is_expected.to contain_exec('Swarm join').with(
'command' => exec_join,
'environment' => exec_environment,
'path' => exec_path,
'provider' => exec_provider,
'timeout' => exec_timeout,
'unless' => unless_join,
)
}
end
if ensure_value == 'absent'
it {
is_expected.to contain_exec('Leave swarm').with(
'command' => 'docker swarm leave --force',
'onlyif' => onlyif_leave,
'path' => exec_path,
'provider' => exec_provider,
)
}
end
end

File Metadata

Mime Type
text/plain
Expires
Sat, Jun 21, 5:22 PM (1 w, 3 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3357476

Event Timeline