in integration_test/agents/agents.go [352:380]
func CheckServicesNotRunning(ctx context.Context, logger *log.Logger, vm *gce.VM, services []AgentService) error {
logger.Print("Checking that agents are NOT running")
for _, service := range services {
if gce.IsWindows(vm.ImageSpec) {
// There are two possible cases that are acceptable here:
// 1) the service has been deleted
// 2) the service still exists but is in some state other than "Running",
// such as "Stopped".
// We currently only see case #1, but let's permit case #2 as well.
// The following command should output nothing, or maybe just a blank
// line, in either case.
output, err := gce.RunRemotely(ctx, logger, vm, fmt.Sprintf("Get-Service | Where-Object {$_.Name -eq '%s' -and $_.Status -eq 'Running'}", service.ServiceName))
if err != nil {
return fmt.Errorf("CheckServicesNotRunning(): error looking up running services named %v: %v", service.ServiceName, err)
}
if strings.TrimSpace(output.Stdout) != "" {
return fmt.Errorf("CheckServicesNotRunning(): service %v was unexpectedly 'Running'. output: %s", service.ServiceName, output.Stdout)
}
continue
}
if service.ServiceName == "google-fluentd" {
continue // TODO(b/159817885): Assert that google-fluentd is not running.
}
if _, err := gce.RunRemotely(ctx, logger, vm, fmt.Sprintf("! sudo service %s status", service.ServiceName)); err != nil {
return fmt.Errorf("CheckServicesNotRunning(): command could not be run or status of %s was unexpectedly OK. err: %v", service.ServiceName, err)
}
}
return nil
}