From dc0e45c8a06bf14e2ea3621bcb8da4031033b999 Mon Sep 17 00:00:00 2001 From: Andrew Jackura Date: Fri, 19 Mar 2021 19:37:17 +0000 Subject: [PATCH] e2e_test: enable serial logs in cos to support ReportInventory test (#297) * e2e_test: enable serial logs in cos to support ReportInventory test * govet --- .../inventoryreporting/inventory_reporting.go | 7 ++++++- e2e_tests/test_suites/inventoryreporting/test_setup.go | 2 +- e2e_tests/utils/utils.go | 9 +++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/e2e_tests/test_suites/inventoryreporting/inventory_reporting.go b/e2e_tests/test_suites/inventoryreporting/inventory_reporting.go index 2fd90a4ec..2515c2f25 100644 --- a/e2e_tests/test_suites/inventoryreporting/inventory_reporting.go +++ b/e2e_tests/test_suites/inventoryreporting/inventory_reporting.go @@ -20,6 +20,7 @@ import ( "log" "path" "regexp" + "strings" "sync" "time" @@ -106,10 +107,14 @@ func runInventoryReportingTest(ctx context.Context, testSetup *inventoryTestSetu // Build regexes for verification. positivePatterns := []string{ fmt.Sprintf(`.*Calling ReportInventory with request containing hostname %s, short name %s, [1-9]+[0-9]* installed packages, [0-9]+ available packages`, testSetup.hostname, testSetup.shortName), - `.*"report_full_inventory".*true.*`, `.*"report_full_inventory".*false.*`, `.*Finished task "Report OSInventory".*`, } + // Because COS does not output debug agent log to serial by default and we have to manually set + // that up on boot the agent will report full inventory before we can see the output. + if !strings.Contains(testSetup.image, "cos") { + positivePatterns = append(positivePatterns, `.*"report_full_inventory".*true.*`) + } positiveRegexes, err := compileRegex(positivePatterns) if err != nil { testCase.WriteFailure("Error compiling ReportInventory RPC payload regex: %v", err) diff --git a/e2e_tests/test_suites/inventoryreporting/test_setup.go b/e2e_tests/test_suites/inventoryreporting/test_setup.go index 594de3a9c..09fc0265c 100644 --- a/e2e_tests/test_suites/inventoryreporting/test_setup.go +++ b/e2e_tests/test_suites/inventoryreporting/test_setup.go @@ -81,7 +81,7 @@ var ( } cosSetup = &inventoryTestSetup{ - startup: compute.BuildInstanceMetadataItem("startup-script", utils.CurlPost), + startup: compute.BuildInstanceMetadataItem("startup-script", utils.CosSetup), machineType: "e2-standard-2", timeout: 5 * time.Minute, } diff --git a/e2e_tests/utils/utils.go b/e2e_tests/utils/utils.go index f4d1287d7..b85304403 100644 --- a/e2e_tests/utils/utils.go +++ b/e2e_tests/utils/utils.go @@ -56,6 +56,15 @@ sleep 5 done systemctl start google-osconfig-agent` + CurlPost + // CosSetup sets up serial logging on COS. + CosSetup = ` +sleep 10 +sed -i 's/^#ForwardToConsole=no/ForwardToConsole=yes/' /etc/systemd/journald.conf +sed -i 's/^#MaxLevelConsole=info/MaxLevelConsole=debug/' /etc/systemd/journald.conf +MaxLevelConsole=debug +systemctl force-reload systemd-journald +systemctl restart google-osconfig-agent` + CurlPost + // CurlPost indicates agent is installed. CurlPost = ` uri=http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/osconfig_tests/install_done