mirror of
https://github.com/rapid7/metasploitable3.git
synced 2024-09-21 00:01:14 +02:00
175 lines
5.0 KiB
Ruby
175 lines
5.0 KiB
Ruby
|
require 'spec_helper'
|
||
|
|
||
|
describe 'docker_test::network' do
|
||
|
cached(:chef_run) { ChefSpec::SoloRunner.new(platform: 'ubuntu', version: '16.04').converge(described_recipe) }
|
||
|
|
||
|
context 'creates a network with unicode name' do
|
||
|
it 'creates docker_network_seseme_straße' do
|
||
|
expect(chef_run).to create_docker_network('seseme_straße')
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context 'creates a network with defaults' do
|
||
|
it 'creates docker_network_a' do
|
||
|
expect(chef_run).to create_docker_network('network_a')
|
||
|
end
|
||
|
|
||
|
it 'creates echo-base-network_a' do
|
||
|
expect(chef_run).to run_docker_container('echo-base-network_a')
|
||
|
end
|
||
|
|
||
|
it 'creates echo-station-network_a' do
|
||
|
expect(chef_run).to run_docker_container('echo-station-network_a')
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context 'when testing network deletion' do
|
||
|
it 'creates network_b with the CLI' do
|
||
|
expect(chef_run).to run_execute('create network_b').with(
|
||
|
command: 'docker network create network_b'
|
||
|
)
|
||
|
end
|
||
|
|
||
|
it 'creates /marker_delete_network_b' do
|
||
|
expect(chef_run).to create_file('/marker_delete_network_b')
|
||
|
end
|
||
|
|
||
|
it 'deletes docker_network[network_b]' do
|
||
|
expect(chef_run).to delete_docker_network('network_b')
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context 'creates a network with subnet and gateway' do
|
||
|
it 'creates docker_network_c' do
|
||
|
expect(chef_run).to create_docker_network('network_c').with(
|
||
|
subnet: '192.168.88.0/24',
|
||
|
gateway: '192.168.88.1'
|
||
|
)
|
||
|
end
|
||
|
|
||
|
it 'creates echo-base-network_c' do
|
||
|
expect(chef_run).to run_docker_container('echo-base-network_c')
|
||
|
end
|
||
|
|
||
|
it 'creates echo-station-network_c' do
|
||
|
expect(chef_run).to run_docker_container('echo-station-network_c')
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context 'creates a network with aux_address' do
|
||
|
it 'creates docker_network_d' do
|
||
|
expect(chef_run).to create_docker_network('network_d').with(
|
||
|
subnet: '192.168.89.0/24',
|
||
|
gateway: '192.168.89.1',
|
||
|
aux_address: ['a=192.168.89.2', 'b=192.168.89.3']
|
||
|
)
|
||
|
end
|
||
|
|
||
|
it 'creates echo-base-network_d' do
|
||
|
expect(chef_run).to run_docker_container('echo-base-network_d')
|
||
|
end
|
||
|
|
||
|
it 'creates echo-station-network_d' do
|
||
|
expect(chef_run).to run_docker_container('echo-station-network_d')
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context 'creates a network with overlay driver' do
|
||
|
it 'creates network_e' do
|
||
|
expect(chef_run).to create_docker_network('network_e').with(
|
||
|
driver: 'overlay'
|
||
|
)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context 'creates a network with an ip-range' do
|
||
|
it 'creates docker_network_f' do
|
||
|
expect(chef_run).to create_docker_network('network_f').with(
|
||
|
driver: 'bridge',
|
||
|
subnet: '172.28.0.0/16',
|
||
|
gateway: '172.28.5.254',
|
||
|
ip_range: '172.28.5.0/24'
|
||
|
)
|
||
|
end
|
||
|
|
||
|
it 'creates echo-base-network_f' do
|
||
|
expect(chef_run).to run_docker_container('echo-base-network_f')
|
||
|
end
|
||
|
|
||
|
it 'creates echo-station-network_f' do
|
||
|
expect(chef_run).to run_docker_container('echo-station-network_f')
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context 'create an overlay network with multiple subnets' do
|
||
|
it 'creates docker_network_g' do
|
||
|
expect(chef_run).to create_docker_network('network_g').with(
|
||
|
driver: 'overlay',
|
||
|
subnet: ['192.168.0.0/16', '192.170.0.0/16'],
|
||
|
gateway: ['192.168.0.100', '192.170.0.100'],
|
||
|
ip_range: '192.168.1.0/24',
|
||
|
aux_address: ['a=192.168.1.5', 'b=192.168.1.6', 'a=192.170.1.5', 'b=192.170.1.6']
|
||
|
)
|
||
|
end
|
||
|
|
||
|
it 'creates echo-base-network_g' do
|
||
|
expect(chef_run).to run_docker_container('echo-base-network_g')
|
||
|
end
|
||
|
|
||
|
it 'creates echo-station-network_g' do
|
||
|
expect(chef_run).to run_docker_container('echo-station-network_g')
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context 'connect and disconnect a container' do
|
||
|
it 'creates docker_network_h1' do
|
||
|
expect(chef_run).to create_docker_network('network_h1')
|
||
|
end
|
||
|
|
||
|
it 'creates docker_network_h2' do
|
||
|
expect(chef_run).to create_docker_network('network_h2')
|
||
|
end
|
||
|
|
||
|
it 'creates container1-network_h' do
|
||
|
expect(chef_run).to run_docker_container('container1-network_h')
|
||
|
end
|
||
|
|
||
|
it 'creates /marker/network_h' do
|
||
|
expect(chef_run).to create_file('/marker_network_h')
|
||
|
end
|
||
|
|
||
|
it 'connects container1-network_h with network_h2' do
|
||
|
expect(chef_run).to connect_docker_network('network_h2 connector').with(
|
||
|
container: 'container1-network_h'
|
||
|
)
|
||
|
end
|
||
|
|
||
|
it 'disconnects container1-network_h from network_h1' do
|
||
|
expect(chef_run).to disconnect_docker_network('network_h1 disconnector').with(
|
||
|
container: 'container1-network_h'
|
||
|
)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context 'ipv6 network' do
|
||
|
it 'creates docker_network_ipv6' do
|
||
|
expect(chef_run).to create_docker_network('network_ipv6').with(
|
||
|
enable_ipv6: true,
|
||
|
subnet: 'fd00:dead:beef::/48'
|
||
|
)
|
||
|
end
|
||
|
|
||
|
it 'creates docker_network_ipv4' do
|
||
|
expect(chef_run).to create_docker_network('network_ipv4')
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context 'internal network' do
|
||
|
it 'creates docker_network_internal' do
|
||
|
expect(chef_run).to create_docker_network('network_internal').with(
|
||
|
internal: true
|
||
|
)
|
||
|
end
|
||
|
end
|
||
|
end
|