cookbooks/aws-parallelcluster-environment/spec/unit/resources/network_service_spec.rb (92 lines of code) (raw):

require 'spec_helper' class ConvergeNetworkService def self.restart(chef_run) chef_run.converge_dsl('aws-parallelcluster-environment') do network_service 'restart' do action :restart end end end def self.reload(chef_run) chef_run.converge_dsl('aws-parallelcluster-environment') do network_service 'reload' do action :reload end end end end describe 'network_service:restart' do for_all_oses do |platform, version| context "on #{platform}#{version}" do cached(:chef_run) do runner = runner(platform: platform, version: version, step_into: ['network_service']) ConvergeNetworkService.restart(runner) end cached(:node) { chef_run.node } cached(:network_service_name) do if platform == 'amazon' && version == '2' || platform == 'centos' 'network' elsif platform == 'amazon' && version == '2023' 'systemd-networkd' elsif platform == 'ubuntu' 'systemd-resolved' elsif %(redhat rocky).include?(platform) 'NetworkManager' else raise "Cannot determine network_service_name: unrecognized platform #{platform}" end end it "restarts network service" do is_expected.to restart_network_service('restart') network_services_to_restart = if platform == 'amazon' && version == '2023' [network_service_name, 'systemd-resolved'] else [network_service_name] end is_expected.to write_log("Restarting '#{network_services_to_restart.join(' ')}' service, platform #{platform} '#{node['platform_version']}'") is_expected.to restart_service(network_service_name) .with(ignore_failure: true) end end end end describe 'network_service:reload' do for_all_oses do |platform, version| context "on #{platform}#{version}" do cached(:chef_run) do runner = runner(platform: platform, version: version, step_into: ['network_service']) ConvergeNetworkService.reload(runner) end cached(:network_service_name) do if platform == 'amazon' && version == '2' || platform == 'centos' 'network' elsif platform == 'amazon' && version == '2023' 'systemd-networkd' elsif platform == 'ubuntu' 'systemd-resolved' elsif %(redhat rocky).include?(platform) 'NetworkManager' else raise "Cannot determine network_service_name: unrecognized platform #{platform}" end end it 'reloads network_service' do is_expected.to reload_network_service('reload') end if platform == 'ubuntu' it "applies network configuration" do is_expected.to run_execute("apply network configuration") .with(command: "netplan apply") .with(timeout: 60) end it "doesn't restart network service" do is_expected.not_to restart_service(network_service_name) end else it "restarts network service" do is_expected.to restart_service(network_service_name) end end end end end