From aff55f13cc757b342022749aabac2172c81324a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Dost=C3=A1l?= Date: Fri, 9 Aug 2024 12:21:00 +0200 Subject: [PATCH] Simplify publiccloud/cloud_netconfig test --- tests/publiccloud/cloud_netconfig.pm | 60 +++++++--------------------- 1 file changed, 14 insertions(+), 46 deletions(-) diff --git a/tests/publiccloud/cloud_netconfig.pm b/tests/publiccloud/cloud_netconfig.pm index 3cff43951854..9d83bf7c16a9 100644 --- a/tests/publiccloud/cloud_netconfig.pm +++ b/tests/publiccloud/cloud_netconfig.pm @@ -19,70 +19,38 @@ use publiccloud::utils qw(is_azure is_ec2 is_gce); sub run { my ($self, $args) = @_; my $instance = $args->{my_instance}; - my $os_version = get_var('VERSION'); my $pers_net_rules = '/etc/udev/rules.d/75-persistent-net-generator.rules'; # Cloud metadata service API is reachable at local destination # 169.254.169.254 in case of all public cloud providers. my $pc_meta_api_ip = '169.254.169.254'; - my $cloud_netconfig_svc_status = $instance->ssh_script_run( - cmd => 'systemctl status cloud-netconfig.service'); - if ($cloud_netconfig_svc_status == 0 || $cloud_netconfig_svc_status == 3) - { - record_info('Success', 'Status of cloud-netconfig.service is OK.'); - } - else { - die('cloud-netconfig.service status appears to be incorrect!'); - } + $instance->ssh_assert_script_run('systemctl is-enabled cloud-netconfig.service'); - $instance->ssh_assert_script_run( - cmd => 'systemctl status cloud-netconfig.timer', - fail_message => 'cloud-netconfig.timer appears not to be started.' - ); + $instance->ssh_assert_script_run('systemctl status cloud-netconfig.timer'); # 75-persistent-net-generator.rules is usually a symlink to /dev/null in SLES 12+ - $instance->ssh_assert_script_run( - cmd => "test -L $pers_net_rules", - fail_message => "File \"$pers_net_rules\" should be a symlink to " - . "\"/dev/null\" in SLES 12+." - ); + $instance->ssh_assert_script_run("test -L $pers_net_rules"); - my $grep_cloudvm_ipv4_cmd = - 'ip -4 addr show eth0 | grep -oP "^\s+inet\s(\d+\.){3}\d+" | ' - . 'sed "s/ *inet //g"'; - my $local_eth0_ip = - $instance->ssh_script_output(cmd => $grep_cloudvm_ipv4_cmd); + my $local_eth0_ip = $instance->ssh_script_output(qq(ip -4 -o a s eth0 | grep -Po "inet \\K[\\d.]+")); chomp($local_eth0_ip); my $query_meta_ipv4_cmd = ""; if (is_azure()) { - $query_meta_ipv4_cmd = - 'curl -H Metadata:true ' - . "\"http://$pc_meta_api_ip/metadata/instance/network/interface/0/" - . 'ipv4/ipAddress/0/privateIpAddress?api-version=2023-07-01' - . '&format=text"'; - } - elsif (is_ec2()) { - my $access_token = $instance->ssh_script_output(cmd => "curl -X PUT http://$pc_meta_api_ip/latest/api/token -H \"X-aws-ec2-metadata-token-ttl-seconds: 60\""); + $query_meta_ipv4_cmd = qq(curl -H Metadata:true "http://$pc_meta_api_ip/metadata/instance/network/interface/0/ipv4/ipAddress/0/privateIpAddress?api-version=2023-07-01&format=text"); + } elsif (is_ec2()) { + my $access_token = $instance->ssh_script_output(qq(curl -X PUT http://$pc_meta_api_ip/latest/api/token -H "X-aws-ec2-metadata-token-ttl-seconds: 60")); record_info("DEBUG", $access_token); - $query_meta_ipv4_cmd = - "curl -H \"X-aws-ec2-metadata-token: $access_token\" \"http://$pc_meta_api_ip/latest/meta-data/local-ipv4\""; - } - elsif (is_gce()) { - $query_meta_ipv4_cmd = - 'curl -H "Metadata-Flavor: Google" ' - . "\"http://$pc_meta_api_ip/computeMetadata/v1/instance/" - . 'network-interfaces/0/ip"'; + $query_meta_ipv4_cmd = qq(curl -H "X-aws-ec2-metadata-token: $access_token" "http://$pc_meta_api_ip/latest/meta-data/local-ipv4"); + } elsif (is_gce()) { + $query_meta_ipv4_cmd = qq(curl -H "Metadata-Flavor: Google" "http://$pc_meta_api_ip/computeMetadata/v1/instance/network-interfaces/0/ip"); } else { - die("Unsupported public cloud provider."); + die("Unsupported public cloud provider"); } - my $metadata_eth0_ip = - $instance->ssh_script_output(cmd => $query_meta_ipv4_cmd); + my $metadata_eth0_ip = $instance->ssh_script_output($query_meta_ipv4_cmd); die("Failed to get IP from metadata server") unless length($metadata_eth0_ip); - assert_equals($metadata_eth0_ip, $local_eth0_ip, - 'Locally assigned IP does not equal the IP retrieved from CSP ' - . ' metadata service.'); + assert_equals($metadata_eth0_ip, $local_eth0_ip, 'Locally assigned IP does not equal the IP retrieved from CSP metadata service.'); } + 1;