func InstallOpsAgentUAPPluginFromGCS()

in integration_test/agents/agents.go [1076:1127]


func InstallOpsAgentUAPPluginFromGCS(ctx context.Context, logger *log.Logger, vm *gce.VM, gcsPath string) error {
	if err := gce.InstallGsutilIfNeeded(ctx, logger, vm); err != nil {
		return err
	}

	if gce.IsWindows(vm.ImageSpec) {
		if _, err := gce.RunRemotely(ctx, logger, vm, "New-Item -ItemType directory -Path C:\\agentPlugin"); err != nil {
			return err
		}

		if _, err := gce.RunRemotely(ctx, logger, vm, fmt.Sprintf(`gsutil cp %s/google-cloud-ops-agent-plugin*.tar.gz C:\\agentPlugin`, gcsPath)); err != nil {
			return fmt.Errorf("error copying down agent package from GCS: %v", err)
		}

		if _, err := gce.RunRemotely(ctx, logger, vm, "ls C:\\agentPlugin"); err != nil {
			return err
		}
		if _, err := gce.RunRemotely(ctx, logger, vm, `Get-ChildItem -Path "C:\agentPlugin" -Filter "google-cloud-ops-agent-plugin*.tar.gz" -File|Select-Object -First 1 -Expand FullName | ForEach-Object { if ($_){ & tar -xzf $_ -C "C:\"} }`); err != nil {
			return err
		}
		// Print the contents of the home dir into the logs.
		if _, err := gce.RunRemotely(ctx, logger, vm, "ls C:\\agentPlugin; ls C:\\"); err != nil {
			return err
		}

	} else {
		if _, err := gce.RunRemotely(ctx, logger, vm, "mkdir -p /tmp/agentPlugin"); err != nil {
			return err
		}

		if _, err := gce.RunRemotely(ctx, logger, vm, "sudo gsutil cp "+gcsPath+"/google-cloud-ops-agent-plugin*.tar.gz /tmp/agentPlugin"); err != nil {
			return fmt.Errorf("error copying down the agent uap plugin tarball from GCS: %v", err)
		}

		// Print the contents of /tmp/agentPlugin into the logs.
		if _, err := gce.RunRemotely(ctx, logger, vm, "ls -la /tmp/agentPlugin"); err != nil {
			return err
		}
		if _, err := gce.RunRemotely(ctx, logger, vm, "sudo find /tmp/agentPlugin -maxdepth 1 -name \"google-cloud-ops-agent-plugin*.tar.gz\" -print0 | xargs -0 -I {} sudo tar -xzf {} --no-overwrite-dir -C ~/ && ls -la"); err != nil {
			return err
		}
		// Print the contents of the home dir into the logs.
		if _, err := gce.RunRemotely(ctx, logger, vm, "ls -la ~/"); err != nil {
			return err
		}
	}

	if err := gce.InstallGrpcurlIfNeeded(ctx, logger, vm); err != nil {
		return err
	}
	return StartOpsAgentPluginServer(ctx, logger, vm, OpsAgentPluginServerPort)
}