Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package google-guest-agent for openSUSE:Factory checked in at 2025-12-10 15:31:28 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/google-guest-agent (Old) and /work/SRC/openSUSE:Factory/.google-guest-agent.new.1939 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "google-guest-agent" Wed Dec 10 15:31:28 2025 rev:56 rq:1321751 version:20251208.00 Changes: -------- --- /work/SRC/openSUSE:Factory/google-guest-agent/google-guest-agent.changes 2025-11-26 18:51:10.137159613 +0100 +++ /work/SRC/openSUSE:Factory/.google-guest-agent.new.1939/google-guest-agent.changes 2025-12-10 15:32:09.302362510 +0100 @@ -1,0 +2,63 @@ +Tue Dec 9 08:34:13 UTC 2025 - John Paul Adrian Glaubitz <[email protected]> + +- Update to version 20251208.00 + * network: force address manager to always consolidate the OS state (#585) + * Bump golang.org/x/crypto from 0.41.0 to 0.45.0 (#583) + * Don't delete the authorized_keys file when an empty key list is passed + to updateAuthorizedKeysFile (#582) + * Add Tyler, Saswat, Hank to OWNERS (#577) + * Honor core plugin setting on windows package update (#576) + * Restart agent if core plugin is disabled (#575) + * Add extra debug logging around toggling OS Login (#572) + * Update go version to 1.25 (#565) + * Add compat adapt script to windows in agent sysprep (#569) + * Fix adapt to use more portable shebang line (#567) + * Remove routes script from packaging (#566) + * Update adapt script to run on startup/shutdown both (#561) + * Update agent_uninstall.ps1 (#558) + * Stop core plugin before removing agent package (#554) + * Startup scripts should start after agent manager instead (#553) + * Update presets and install dependencies on systemd units (#552) + * Ensure agent service is disabled (#551) + * Disable legacy agent to enable core plugin (#550) + * Final fix for RHEL packaging for routes setup (#549) + * Fix RHEL packaging for routes scripts (#548) + * Packaging changes to include routes script installation (#542) + * Update CLI name in packaging (#543) + * systemd should manage only the main process (#544) +- from version 20251206.00 + * fix start mode for windows on stable release (#584) + * Update agent_uninstall.ps1 (#558) (#580) + * Update go version for stable branch to 1.25 (#571) + * Add adapt script in stable branch as per #569 (#570) + * Backport fix from #567 to stable branch (#568) + * Revert compat behavior and call known binary directly (#560) + * Revert compat behavior and call known binary directly (#559) + * Build rollforward package to re-enable original agent and disable core plugin (#557) +- from version 20251205.00 + * network: force address manager to always consolidate the OS state (#585) + * Bump golang.org/x/crypto from 0.41.0 to 0.45.0 (#583) + * Don't delete the authorized_keys file when an empty key list + is passed to updateAuthorizedKeysFile (#582) + * Add Tyler, Saswat, Hank to OWNERS (#577) + * Honor core plugin setting on windows package update (#576) + * Restart agent if core plugin is disabled (#575) + * Add extra debug logging around toggling OS Login (#572) + * Update go version to 1.25 (#565) + * Add compat adapt script to windows in agent sysprep (#569) + * Fix adapt to use more portable shebang line (#567) + * Remove routes script from packaging (#566) + * Update adapt script to run on startup/shutdown both (#561) + * Update agent_uninstall.ps1 (#558) + * Stop core plugin before removing agent package (#554) + * Startup scripts should start after agent manager instead (#553) + * Update presets and install dependencies on systemd units (#552) + * Ensure agent service is disabled (#551) + * Disable legacy agent to enable core plugin (#550) + * Final fix for RHEL packaging for routes setup (#549) + * Fix RHEL packaging for routes scripts (#548) + * Packaging changes to include routes script installation (#542) + * Update CLI name in packaging (#543) + * systemd should manage only the main process (#544) + +------------------------------------------------------------------- Old: ---- guest-agent-20251120.01.tar.gz New: ---- guest-agent-20251208.00.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ google-guest-agent.spec ++++++ --- /var/tmp/diff_new_pack.48htOH/_old 2025-12-10 15:32:11.030435368 +0100 +++ /var/tmp/diff_new_pack.48htOH/_new 2025-12-10 15:32:11.042435874 +0100 @@ -24,7 +24,7 @@ %global import_path %{provider_prefix} Name: google-guest-agent -Version: 20251120.01 +Version: 20251208.00 Release: 0 Summary: Google Cloud Guest Agent License: Apache-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.48htOH/_old 2025-12-10 15:32:11.310447174 +0100 +++ /var/tmp/diff_new_pack.48htOH/_new 2025-12-10 15:32:11.346448692 +0100 @@ -3,8 +3,8 @@ <param name="url">https://github.com/GoogleCloudPlatform/guest-agent/</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="versionformat">20251120.01</param> - <param name="revision">20251120.01</param> + <param name="versionformat">20251208.00</param> + <param name="revision">20251208.00</param> <param name="changesgenerate">enable</param> </service> <service name="recompress" mode="disabled"> @@ -15,7 +15,7 @@ <param name="basename">guest-agent</param> </service> <service name="go_modules" mode="disabled"> - <param name="archive">guest-agent-20251120.01.tar.gz</param> + <param name="archive">guest-agent-20251208.00.tar.gz</param> </service> </services> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.48htOH/_old 2025-12-10 15:32:11.406451222 +0100 +++ /var/tmp/diff_new_pack.48htOH/_new 2025-12-10 15:32:11.442452739 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/GoogleCloudPlatform/guest-agent/</param> - <param name="changesrevision">648ad50d7dfb12e73eb0dd3aafde5c085d34637f</param></service></servicedata> + <param name="changesrevision">ba17109f4f390c2b7ee8b1d6b636efe6903073bd</param></service></servicedata> (No newline at EOF) ++++++ guest-agent-20251120.01.tar.gz -> guest-agent-20251208.00.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/90-google-guest-agent.preset new/guest-agent-20251208.00/90-google-guest-agent.preset --- old/guest-agent-20251120.01/90-google-guest-agent.preset 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/90-google-guest-agent.preset 2025-12-02 00:11:32.000000000 +0100 @@ -1,4 +1,6 @@ -enable google-guest-agent.service +disable google-guest-agent.service enable google-shutdown-scripts.service enable google-startup-scripts.service -enable gce-workload-cert-refresh.timer +disable gce-workload-cert-refresh.timer +enable google-guest-compat-manager.service +enable google-guest-agent-manager.service \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/OWNERS new/guest-agent-20251208.00/OWNERS --- old/guest-agent-20251120.01/OWNERS 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/OWNERS 2025-12-02 00:11:32.000000000 +0100 @@ -7,8 +7,8 @@ - chaitanyakulkarni28 - dorileo - drewhli - - elicriffield - jjerger - - karnvadaliya - - koln67 - lpleahy + - saswatpadhi + - tylerjdao + - shenpai35 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/core-plugin-enabled new/guest-agent-20251208.00/core-plugin-enabled --- old/guest-agent-20251120.01/core-plugin-enabled 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/core-plugin-enabled 1970-01-01 01:00:00.000000000 +0100 @@ -1,2 +0,0 @@ -# Please do not edit this file manually. -enabled=false \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/go.mod new/guest-agent-20251208.00/go.mod --- old/guest-agent-20251120.01/go.mod 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/go.mod 2025-12-02 00:11:32.000000000 +0100 @@ -17,8 +17,8 @@ github.com/kardianos/service v1.2.4 github.com/robfig/cron/v3 v3.0.1 github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07 - golang.org/x/crypto v0.41.0 - golang.org/x/sys v0.35.0 + golang.org/x/crypto v0.45.0 + golang.org/x/sys v0.38.0 google.golang.org/api v0.248.0 google.golang.org/grpc v1.75.0 google.golang.org/protobuf v1.36.8 @@ -67,10 +67,10 @@ go.opentelemetry.io/otel/sdk/metric v1.37.0 // indirect go.opentelemetry.io/otel/trace v1.37.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/net v0.43.0 // indirect + golang.org/x/net v0.47.0 // indirect golang.org/x/oauth2 v0.30.0 // indirect - golang.org/x/sync v0.16.0 // indirect - golang.org/x/text v0.28.0 // indirect + golang.org/x/sync v0.18.0 // indirect + golang.org/x/text v0.31.0 // indirect golang.org/x/time v0.12.0 // indirect google.golang.org/genproto v0.0.0-20250826171959-ef028d996bc1 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20250826171959-ef028d996bc1 // indirect diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/go.sum new/guest-agent-20251208.00/go.sum --- old/guest-agent-20251120.01/go.sum 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/go.sum 2025-12-02 00:11:32.000000000 +0100 @@ -147,21 +147,32 @@ go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= golang.org/x/crypto v0.41.0 h1:WKYxWedPGCTVVl5+WHSSrOBT0O8lx32+zxmHxijgXp4= golang.org/x/crypto v0.41.0/go.mod h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc= +golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q= +golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc h1:O9NuF4s+E/PvMIy+9IUZB9znFwUIXEWSstNjek6VpVg= golang.org/x/exp v0.0.0-20240531132922-fd00a4e0eefc/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE= golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg= +golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= +golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= +golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI= golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= +golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/term v0.34.0 h1:O/2T7POpk0ZZ7MAzMeWFSg6S5IpWd/RXDlM9hgM3DR4= golang.org/x/term v0.34.0/go.mod h1:5jC53AEywhIVebHgPVeg0mj8OD3VO9OzclacVrqpaAw= +golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU= golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng= golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU= +golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= +golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= golang.org/x/time v0.12.0 h1:ScB/8o8olJvc+CQPWrK3fPZNfh7qgwCrY0zJmoEQLSE= golang.org/x/time v0.12.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/google-guest-agent-manager.service new/guest-agent-20251208.00/google-guest-agent-manager.service --- old/guest-agent-20251120.01/google-guest-agent-manager.service 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/google-guest-agent-manager.service 2025-12-02 00:11:32.000000000 +0100 @@ -1,5 +1,7 @@ [Unit] Description=Google Compute Engine Guest Agent Plugin Manager +# Start before sshd in order to regenerate SSH host keys. +Before=sshd.service After=network-online.target syslog.service After=network.service networking.service NetworkManager.service systemd-networkd.service @@ -8,6 +10,9 @@ ExecStart=/usr/bin/google_guest_agent_manager OOMScoreAdjust=-999 Restart=always +KillMode=process [Install] +WantedBy=sshd.service WantedBy=multi-user.target +WantedBy=network.service networking.service NetworkManager.service systemd-networkd.service \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/google-startup-scripts.service new/guest-agent-20251208.00/google-startup-scripts.service --- old/guest-agent-20251120.01/google-startup-scripts.service 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/google-startup-scripts.service 2025-12-02 00:11:32.000000000 +0100 @@ -1,7 +1,7 @@ [Unit] Description=Google Compute Engine Startup Scripts Wants=network-online.target rsyslog.service -After=network-online.target rsyslog.service google-guest-agent.service +After=network-online.target rsyslog.service google-guest-agent-manager.service Before=apt-daily.service [Service] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/google_guest_agent/addresses.go new/guest-agent-20251208.00/google_guest_agent/addresses.go --- old/guest-agent-20251120.01/google_guest_agent/addresses.go 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/google_guest_agent/addresses.go 2025-12-02 00:11:32.000000000 +0100 @@ -19,7 +19,6 @@ "errors" "fmt" "net" - "reflect" "runtime" "slices" "strings" @@ -31,9 +30,7 @@ ) var ( - addressKey = regKeyBase + `\ForwardedIps` - oldWSFCAddresses string - oldWSFCEnable bool + addressKey = regKeyBase + `\ForwardedIps` ) type addressMgr struct{} @@ -230,23 +227,11 @@ } } +// Regardless of the state changes in MDS go through the address consolidation +// and apply address changes if required. Always running the manager guarantees +// routes will be re added in case they were removed by any external factor. func (a *addressMgr) Diff(ctx context.Context) (bool, error) { - // Return true if this is the first call (when the first mds descriptor is available). - if oldMetadata == nil { - return true, nil - } - - config := cfg.Get() - wsfcAddresses := a.parseWSFCAddresses(config) - wsfcEnable := a.parseWSFCEnable(config) - - diff := !reflect.DeepEqual(newMetadata.Instance.NetworkInterfaces, oldMetadata.Instance.NetworkInterfaces) || - !reflect.DeepEqual(newMetadata.Instance.VlanNetworkInterfaces, oldMetadata.Instance.VlanNetworkInterfaces) || - wsfcEnable != oldWSFCEnable || wsfcAddresses != oldWSFCAddresses - - oldWSFCAddresses = wsfcAddresses - oldWSFCEnable = wsfcEnable - return diff, nil + return true, nil } func (a *addressMgr) Timeout(ctx context.Context) (bool, error) { @@ -368,7 +353,7 @@ } msg += fmt.Sprintf(" removing %q", toRm) } - logger.Infof(msg) + logger.Infof("%v", msg) } var registryEntries []string diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/google_guest_agent/addresses_test.go new/guest-agent-20251208.00/google_guest_agent/addresses_test.go --- old/guest-agent-20251120.01/google_guest_agent/addresses_test.go 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/google_guest_agent/addresses_test.go 2025-12-02 00:11:32.000000000 +0100 @@ -101,46 +101,6 @@ } } -func TestAddressDiff(t *testing.T) { - var tests = []struct { - name string - data []byte - md *metadata.Descriptor - want bool - }{ - {"not set", []byte(""), &metadata.Descriptor{}, false}, - {"enabled in cfg only", []byte("[wsfc]\nenable=true"), &metadata.Descriptor{}, true}, - {"disabled in cfg only", []byte("[wsfc]\nenable=false"), &metadata.Descriptor{}, false}, - {"disabled in cfg, enabled in instance metadata", []byte("[wsfc]\nenable=false"), &metadata.Descriptor{Instance: metadata.Instance{Attributes: metadata.Attributes{EnableWSFC: mkptr(true)}}}, false}, - {"enabled in cfg, disabled in instance metadata", []byte("[wsfc]\nenable=true"), &metadata.Descriptor{Instance: metadata.Instance{Attributes: metadata.Attributes{EnableWSFC: mkptr(false)}}}, true}, - {"enabled in instance metadata only", []byte(""), &metadata.Descriptor{Instance: metadata.Instance{Attributes: metadata.Attributes{EnableWSFC: mkptr(true)}}}, true}, - {"enabled in project metadata only", []byte(""), &metadata.Descriptor{Project: metadata.Project{Attributes: metadata.Attributes{EnableWSFC: mkptr(true)}}}, true}, - {"disabled in instance metadata only", []byte(""), &metadata.Descriptor{Instance: metadata.Instance{Attributes: metadata.Attributes{EnableWSFC: mkptr(false)}}}, false}, - {"enabled in instance metadata, disabled in project metadata", []byte(""), &metadata.Descriptor{Instance: metadata.Instance{Attributes: metadata.Attributes{EnableWSFC: mkptr(true)}}, Project: metadata.Project{Attributes: metadata.Attributes{EnableWSFC: mkptr(false)}}}, true}, - {"disabled in project metadata only", []byte(""), &metadata.Descriptor{Project: metadata.Project{Attributes: metadata.Attributes{EnableWSFC: mkptr(false)}}}, false}, - } - - ctx := context.Background() - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - reloadConfig(t, tt.data) - - oldWSFCEnable = false - oldMetadata = &metadata.Descriptor{} - newMetadata = tt.md - - got, err := (&addressMgr{}).Diff(ctx) - if err != nil { - t.Errorf("Failed to run addressMgr's Diff() call, got error: %+v", err) - } - - if got != tt.want { - t.Errorf("addresses.diff() got: %t, want: %t", got, tt.want) - } - }) - } -} - func TestWsfcFilter(t *testing.T) { var tests = []struct { metaDataJSON []byte @@ -200,7 +160,6 @@ t.Run(fmt.Sprintf("test-%d", i), func(t *testing.T) { reloadConfig(t, nil) - oldWSFCAddresses = tt.oldMetadata.Instance.Attributes.WSFCAddresses newMetadata = tt.newMetadata oldMetadata = tt.oldMetadata testAddress := addressMgr{} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/google_guest_agent/diagnostics.go new/guest-agent-20251208.00/google_guest_agent/diagnostics.go --- old/guest-agent-20251120.01/google_guest_agent/diagnostics.go 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/google_guest_agent/diagnostics.go 2025-12-02 00:11:32.000000000 +0100 @@ -126,7 +126,7 @@ go func() { logger.Infof("Diagnostics: collecting logs from the system.") res := run.WithCombinedOutput(ctx, diagnosticsCmd, args...) - logger.Infof(res.Combined) + logger.Infof("%v", res.Combined) if res.ExitCode != 0 { logger.Warningf("Error collecting logs: %v", res.Error()) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/google_guest_agent/events/sshtrustedca/sshtrustedca_linux.go new/guest-agent-20251208.00/google_guest_agent/events/sshtrustedca/sshtrustedca_linux.go --- old/guest-agent-20251120.01/google_guest_agent/events/sshtrustedca/sshtrustedca_linux.go 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/google_guest_agent/events/sshtrustedca/sshtrustedca_linux.go 2025-12-02 00:11:32.000000000 +0100 @@ -46,7 +46,7 @@ return fmt.Errorf("failed to create named pipe: %+v", err) } } else { - return fmt.Errorf("failed to stat file: " + pipePath) + return fmt.Errorf("failed to stat file: %v", pipePath) } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/google_guest_agent/non_windows_accounts.go new/guest-agent-20251208.00/google_guest_agent/non_windows_accounts.go --- old/guest-agent-20251120.01/google_guest_agent/non_windows_accounts.go 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/google_guest_agent/non_windows_accounts.go 2025-12-02 00:11:32.000000000 +0100 @@ -412,7 +412,7 @@ // updateAuthorizedKeysFile adds provided keys to the user's SSH // AuthorizedKeys file. The file and containing directory are created if it // does not exist. Uses a temporary file to avoid partial updates in case of -// errors. If no keys are provided, the authorized keys file is removed. +// errors. func updateAuthorizedKeysFile(ctx context.Context, user string, keys []string) error { gcomment := "# Added by Google" @@ -442,12 +442,6 @@ } } akpath := path.Join(sshpath, "authorized_keys") - // Remove empty file. - if len(keys) == 0 { - os.Remove(akpath) - return nil - } - tempPath := akpath + ".google" akcontents, err := os.ReadFile(akpath) if err != nil && !os.IsNotExist(err) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/google_guest_agent/oslogin.go new/guest-agent-20251208.00/google_guest_agent/oslogin.go --- old/guest-agent-20251120.01/google_guest_agent/oslogin.go 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/google_guest_agent/oslogin.go 2025-12-02 00:11:32.000000000 +0100 @@ -136,24 +136,29 @@ newMetadata.Instance.Attributes.SSHKeys = nil newMetadata.Project.Attributes.SSHKeys = nil (&accountsMgr{}).Set(ctx) - } - - if !enable && oldEnable { + } else if !enable && oldEnable { logger.Infof("Disabling OS Login") + } else { + logger.Infof("Not enabling or disabling OS Login; enablement state is already as desired: %v", enable) + // Idea: could we simply return early here, if there's really nothing to do? } + logger.Debugf("Updating SSH config...") if err := writeSSHConfig(enable, twofactor, skey, reqCerts); err != nil { logger.Errorf("Error updating SSH config: %v.", err) } + logger.Debugf("Updating NSS config...") if err := writeNSSwitchConfig(enable); err != nil { logger.Errorf("Error updating NSS config: %v.", err) } + logger.Debugf("Updating PAM config...") if err := writePAMConfig(enable, twofactor); err != nil { logger.Errorf("Error updating PAM config: %v.", err) } + logger.Debugf("Updating group.conf...") if err := writeGroupConf(enable); err != nil { logger.Errorf("Error updating group.conf: %v.", err) } @@ -178,19 +183,19 @@ mdsClient.WriteGuestAttributes(ctx, "guest-agent/sshable", now) if enable { - logger.Debugf("Create OS Login dirs, if needed") + logger.Debugf("Creating OS Login dirs, if needed...") if err := createOSLoginDirs(ctx); err != nil { logger.Errorf("Error creating OS Login directory: %v.", err) } - logger.Debugf("create OS Login sudoers config, if needed") + logger.Debugf("Creating OS Login sudoers config, if needed...") if err := createOSLoginSudoersFile(); err != nil { logger.Errorf("Error creating OS Login sudoers file: %v.", err) } // Refresh the NSS cache asynchronously; this can take a while and shouldn't block. go func() { - logger.Debugf("starting OS Login nss cache fill") + logger.Debugf("Starting OS Login NSS cache fill asynchronously...") if err := run.Quiet(ctx, "google_oslogin_nss_cache"); err != nil { logger.Errorf("Error updating NSS cache: %v.", err) } @@ -380,14 +385,22 @@ } func writeNSSwitchConfig(enable bool) error { + logger.Debugf("Reading NSSwitch config file...") nsswitch, err := os.ReadFile("/etc/nsswitch.conf") if err != nil { + logger.Warningf("Error reading NSSwitch config file: %v", err) return err } proposed := updateNSSwitchConfig(string(nsswitch), enable) if proposed == string(nsswitch) { + logger.Debugf("NSSwitch config file is as expected. No changes needed.") return nil } + if enable { + logger.Debugf("Editing NSSwitch config file to enable OS Login.") + } else { + logger.Debugf("Editing NSSwitch config file to disable OS Login.") + } return writeConfigFile("/etc/nsswitch.conf", proposed) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/google_guest_agent/system_windows.go new/guest-agent-20251208.00/google_guest_agent/system_windows.go --- old/guest-agent-20251120.01/google_guest_agent/system_windows.go 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/google_guest_agent/system_windows.go 2025-12-02 00:11:32.000000000 +0100 @@ -35,12 +35,12 @@ func init() { key, _, err := registry.CreateKey(registry.LOCAL_MACHINE, regKeyBase, registry.WRITE) if err != nil { - logger.Fatalf(err.Error()) + logger.Fatalf("%v", err.Error()) } key.Close() key, _, err = registry.CreateKey(registry.LOCAL_MACHINE, addressKey, registry.WRITE) if err != nil { - logger.Fatalf(err.Error()) + logger.Fatalf("%v", err.Error()) } key.Close() } @@ -125,7 +125,7 @@ psCmd := "(Get-Item '" + path + "').VersionInfo.FileVersion" res := run.WithOutput(ctx, "powershell", "-c", psCmd) if res.ExitCode != 0 { - return versionInfo{0, 0}, fmt.Errorf(res.Error()) + return versionInfo{0, 0}, fmt.Errorf("%v", res.Error()) } return parseVersionInfo([]byte(res.StdOut)) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/google_guest_agent/windows_accounts.go new/guest-agent-20251208.00/google_guest_agent/windows_accounts.go --- old/guest-agent-20251120.01/google_guest_agent/windows_accounts.go 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/google_guest_agent/windows_accounts.go 2025-12-02 00:11:32.000000000 +0100 @@ -344,7 +344,7 @@ if sshEnable != oldSSHEnable { err := verifyWinSSHVersion(ctx) if err != nil { - logger.Warningf(err.Error()) + logger.Warningf("%v", err.Error()) } if !checkWindowsServiceRunning(ctx, "sshd") { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/google_metadata_script_runner/main.go new/guest-agent-20251208.00/google_metadata_script_runner/main.go --- old/guest-agent-20251120.01/google_metadata_script_runner/main.go 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/google_metadata_script_runner/main.go 2025-12-02 00:11:32.000000000 +0100 @@ -469,7 +469,7 @@ scripts, err := getExistingKeys(ctx, wantedKeys) if err != nil { - logger.Fatalf(err.Error()) + logger.Fatalf("%v", err.Error()) } if len(scripts) == 0 { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/google_metadata_script_runner/main_test.go new/guest-agent-20251208.00/google_metadata_script_runner/main_test.go --- old/guest-agent-20251120.01/google_metadata_script_runner/main_test.go 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/google_metadata_script_runner/main_test.go 2025-12-02 00:11:32.000000000 +0100 @@ -317,7 +317,7 @@ w.WriteHeader(400) } - fmt.Fprintf(w, r.URL.Path) + fmt.Fprintf(w, "%v", r.URL.Path) ctr[r.URL.Path] = ctr[r.URL.Path] + 1 })) defer server.Close() @@ -386,7 +386,7 @@ if strings.Contains(r.URL.Path, "invalid") { w.WriteHeader(404) } - fmt.Fprintf(w, r.URL.Path) + fmt.Fprintf(w, "%v", r.URL.Path) ctr[r.URL.Path] = ctr[r.URL.Path] + 1 })) defer server.Close() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/google_metadata_script_runner_adapt new/guest-agent-20251208.00/google_metadata_script_runner_adapt --- old/guest-agent-20251120.01/google_metadata_script_runner_adapt 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/google_metadata_script_runner_adapt 2025-12-02 00:11:32.000000000 +0100 @@ -2,9 +2,11 @@ # # This script wraps compatibility logic of guest agent's startup script # runner. If compat manager is present run it, otherwise launch the -# known service binary. In case the package is to revert back to previous -# version of guest-agent without core plugin it directly launches known service -# binary. +# known service binary. # -/usr/bin/google_metadata_script_runner $1 \ No newline at end of file +if [ -e /usr/bin/gce_compat_metadata_script_runner ]; then + /usr/bin/gce_compat_metadata_script_runner $1 +else + /usr/bin/google_metadata_script_runner $1 +fi \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/google_metadata_script_runner_adapt.ps1 new/guest-agent-20251208.00/google_metadata_script_runner_adapt.ps1 --- old/guest-agent-20251120.01/google_metadata_script_runner_adapt.ps1 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/google_metadata_script_runner_adapt.ps1 2025-12-02 00:11:32.000000000 +0100 @@ -15,10 +15,12 @@ <# .SYNOPSIS Metadata Script Runner Adapt. + .DESCRIPTION This script wraps compatibility logic of guest agent's startup script runner. If compat manager is present run it, otherwise launch the known service binary. + .EXAMPLE .\google_metadata_script_runner_adapt.ps1 <startup|shutdown|specialize> #> @@ -33,6 +35,17 @@ $script:gce_install_dir = 'C:\Program Files\Google\Compute Engine' $script:orig_runner = "$script:gce_install_dir\metadata_scripts\GCEMetadataScripts.exe" $script:metadata_script_loc = $script:orig_runner +$script:compatRunner = "$script:gce_install_dir\metadata_scripts\GCECompatMetadataScripts.exe" +$script:runnerV2 = "$script:gce_install_dir\agent\GCEMetadataScriptRunner.exe" + +if (Test-Path $script:runnerV2) { + $script:metadata_script_loc = $script:runnerV2 +} + +if (Test-Path $script:compatRunner) { + $script:metadata_script_loc = $script:compatRunner +} Write-Host "Launching metadata scripts from $script:metadata_script_loc for $phase" +# Call startup script during sysprep specialize phase. & $script:metadata_script_loc $phase \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/packaging/debian/postinst new/guest-agent-20251208.00/packaging/debian/postinst --- old/guest-agent-20251120.01/packaging/debian/postinst 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/packaging/debian/postinst 2025-12-02 00:11:32.000000000 +0100 @@ -14,16 +14,15 @@ fi fi - # Disable and stop this service in favor of original guest-agent instead of core plugin. - systemctl disable 'google-guest-compat-manager.service' > /dev/null || true - systemctl stop 'google-guest-compat-manager.service' > /dev/null || true - - # Stop core plugin. - ggactl_plugin coreplugin stop >/dev/null 2>&1 || : - - # Enable the legacy agent again. - systemctl enable 'google-guest-agent.service' > /dev/null || true - systemctl start 'google-guest-agent.service' > /dev/null || true + if grep -q "false" "/etc/google-guest-agent/core-plugin-enabled"; then + # If the core plugin was disabled, honor that setting. + systemctl enable google-guest-agent.service >/dev/null 2>&1 || : + systemctl start google-guest-agent.service >/dev/null 2>&1 || : + else + # Disable and stop this service in favor of core plugin to be run on default. + systemctl disable 'google-guest-agent.service' > /dev/null || true + systemctl stop 'google-guest-agent.service' > /dev/null || true + fi fi #DEBHELPER# diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/packaging/debian/prerm new/guest-agent-20251208.00/packaging/debian/prerm --- old/guest-agent-20251120.01/packaging/debian/prerm 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/packaging/debian/prerm 2025-12-02 00:11:32.000000000 +0100 @@ -2,6 +2,7 @@ if [ "$1" = "purge" -o "$1" = "remove" ] ; then systemctl stop google-guest-agent-manager >/dev/null 2>&1 || : + ggactl_plugin coreplugin stop >/dev/null 2>&1 || : ggactl_plugin dynamic-cleanup >/dev/null 2>&1 || : fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/packaging/debian/rules new/guest-agent-20251208.00/packaging/debian/rules --- old/guest-agent-20251120.01/packaging/debian/rules 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/packaging/debian/rules 2025-12-02 00:11:32.000000000 +0100 @@ -32,8 +32,6 @@ install -p -m 0755 google-guest-agent/cmd/ggactl/ggactl_plugin debian/google-guest-agent/usr/bin/ggactl_plugin;\ install -p -m 0755 google-guest-agent/cmd/core_plugin/core_plugin debian/google-guest-agent/usr/lib/google/guest_agent/core_plugin;\ install -p -m 0755 google-guest-agent/cmd/metadata_script_runner_compat/gce_compat_metadata_script_runner debian/google-guest-agent/usr/bin/gce_compat_metadata_script_runner;\ - install -d debian/google-guest-agent/etc/google-guest-agent;\ - install -p -m 0755 core-plugin-enabled debian/google-guest-agent/etc/google-guest-agent/core-plugin-enabled;\ fi override_dh_golang: @@ -63,16 +61,21 @@ fi install -d debian/google-guest-agent/lib/systemd/system-preset install -p -m 0644 *.preset debian/google-guest-agent/lib/systemd/system-preset/ - dh_systemd_enable google-guest-agent.service google-startup-scripts.service google-shutdown-scripts.service gce-workload-cert-refresh.timer + dh_systemd_enable google-startup-scripts.service google-shutdown-scripts.service if [ -d google-guest-agent ]; then\ dh_systemd_enable google-guest-compat-manager.service;\ dh_systemd_enable google-guest-agent-manager.service;\ fi +override_dh_installsystemd: + if [ -d google-guest-agent ]; then\ + dh_installsystemd google-guest-compat-manager.service;\ + dh_installsystemd google-guest-agent-manager.service;\ + dh_installsystemd --no-enable --no-start google-guest-agent.service;\ + dh_installsystemd --no-enable --no-start gce-workload-cert-refresh.timer;\ + fi + override_dh_systemd_start: - # Only perform start/stop actions for the guest agent and cert refresh timer. - dh_systemd_start google-guest-agent.service - dh_systemd_start gce-workload-cert-refresh.timer if [ -d google-guest-agent ]; then\ dh_systemd_start google-guest-compat-manager.service;\ dh_systemd_start google-guest-agent-manager.service;\ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/packaging/googet/agent_install.ps1 new/guest-agent-20251208.00/packaging/googet/agent_install.ps1 --- old/guest-agent-20251120.01/packaging/googet/agent_install.ps1 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/packaging/googet/agent_install.ps1 2025-12-02 00:11:32.000000000 +0100 @@ -27,7 +27,7 @@ $compat_display_name = 'Google Compute Engine Compat Manager' $compat_description = 'Google Compute Engine Compat Manager' -$ggactl_exe = "C:\Program Files\Google\Compute Engine\agent\ggactl_plugin.exe" +$core_enabled = "C:\ProgramData\Google\Compute Engine\google-guest-agent\core-plugin-enabled" $initial_config = @' # GCE Instance Configuration @@ -103,15 +103,20 @@ $initial_config | Set-Content -Path $config -Encoding ASCII } - Restart-Service $name -Verbose - if ($install_manager) { - & sc.exe config $compat_manager start=disabled - Stop-Service $compat_manager -Verbose - - Stop-Service $manager_name -Verbose - & $ggactl_exe coreplugin stop - Start-Service $manager_name -Verbose + # If core plugin is disabled, honor the setting and restart non-plugin based agent. + if (Get-Content -Path $core_enabled -ErrorAction SilentlyContinue | Select-String -Pattern "false" -Quiet) { + Restart-Service $name -Verbose + } + else { + & sc.exe config $name start=disabled + Stop-Service $name + } + + Restart-Service $compat_manager -Verbose + Restart-Service $manager_name -Verbose + } else { + Restart-Service $name -Verbose } } catch { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/packaging/googet/agent_uninstall.ps1 new/guest-agent-20251208.00/packaging/googet/agent_uninstall.ps1 --- old/guest-agent-20251120.01/packaging/googet/agent_uninstall.ps1 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/packaging/googet/agent_uninstall.ps1 2025-12-02 00:11:32.000000000 +0100 @@ -30,6 +30,7 @@ # Stop Guest Agent Manager, cleanup all plugins (if present) and delete the service. if (Get-Service $name -ErrorAction SilentlyContinue) { Stop-Service $name -Verbose + & $cleanup_exe coreplugin stop & $cleanup_exe dynamic-cleanup & sc.exe delete $name } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/packaging/googet/google-compute-engine-windows.goospec new/guest-agent-20251208.00/packaging/googet/google-compute-engine-windows.goospec --- old/guest-agent-20251120.01/packaging/googet/google-compute-engine-windows.goospec 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/packaging/googet/google-compute-engine-windows.goospec 2025-12-02 00:11:32.000000000 +0100 @@ -9,7 +9,6 @@ "files": { "CorePlugin.exe": "<ProgramFiles>/Google/Compute Engine/agent/CorePlugin.exe", "google_metadata_script_runner_adapt.ps1": "<ProgramFiles>/Google/Compute Engine/agent/google_metadata_script_runner_adapt.ps1", - "core-plugin-enabled": "<ProgramData>/Google/Compute Engine/google-guest-agent/core-plugin-enabled", "GCEMetadataScriptRunner.exe": "<ProgramFiles>/Google/Compute Engine/agent/GCEMetadataScriptRunner.exe", "GCEWindowsAgentManager.exe": "<ProgramFiles>/Google/Compute Engine/agent/GCEWindowsAgentManager.exe", "GCEWindowsCompatManager.exe": "<ProgramFiles>/Google/Compute Engine/agent/GCEWindowsCompatManager.exe", @@ -46,7 +45,6 @@ "sources": [{ "include": [ "CorePlugin.exe", - "core-plugin-enabled", "ggactl_plugin.exe", "GCEWindowsAgent.exe", "GCECompatMetadataScripts.exe", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/packaging/googet/run_shutdown_scripts.cmd new/guest-agent-20251208.00/packaging/googet/run_shutdown_scripts.cmd --- old/guest-agent-20251120.01/packaging/googet/run_shutdown_scripts.cmd 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/packaging/googet/run_shutdown_scripts.cmd 2025-12-02 00:11:32.000000000 +0100 @@ -16,5 +16,8 @@ REM Run shutdown scripts that should happen as soon as the instance REM begins to power down -"C:\Program Files\Google\Compute Engine\metadata_scripts\GCEMetadataScripts.exe" "shutdown" - +IF EXIST "C:\Program Files\Google\Compute Engine\metadata_scripts\GCECompatMetadataScripts.exe" ( + "C:\Program Files\Google\Compute Engine\metadata_scripts\GCECompatMetadataScripts.exe" "shutdown" +) ELSE ( + "C:\Program Files\Google\Compute Engine\metadata_scripts\GCEMetadataScripts.exe" "shutdown" +) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/packaging/googet/run_startup_scripts.cmd new/guest-agent-20251208.00/packaging/googet/run_startup_scripts.cmd --- old/guest-agent-20251120.01/packaging/googet/run_startup_scripts.cmd 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/packaging/googet/run_startup_scripts.cmd 2025-12-02 00:11:32.000000000 +0100 @@ -19,4 +19,8 @@ REM We execute the startup script asynchronously so it may run without REM this three day maximum runtime limitation. -start "" "C:\Program Files\Google\Compute Engine\metadata_scripts\GCEMetadataScripts.exe" "startup" \ No newline at end of file +IF EXIST "C:\Program Files\Google\Compute Engine\metadata_scripts\GCECompatMetadataScripts.exe" ( + start "" "C:\Program Files\Google\Compute Engine\metadata_scripts\GCECompatMetadataScripts.exe" "startup" +) ELSE ( + start "" "C:\Program Files\Google\Compute Engine\metadata_scripts\GCEMetadataScripts.exe" "startup" +) \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/packaging/google-guest-agent.spec new/guest-agent-20251208.00/packaging/google-guest-agent.spec --- old/guest-agent-20251120.01/packaging/google-guest-agent.spec 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/packaging/google-guest-agent.spec 2025-12-02 00:11:32.000000000 +0100 @@ -92,8 +92,6 @@ install -p -m 0755 %{name}-extra-%{version}/cmd/google_guest_compat_manager/google_guest_compat_manager %{buildroot}%{_bindir}/google_guest_compat_manager install -p -m 0755 %{name}-extra-%{version}/cmd/core_plugin/core_plugin %{buildroot}%{_exec_prefix}/lib/google/guest_agent/core_plugin install -p -m 0755 %{name}-extra-%{version}/cmd/metadata_script_runner_compat/gce_compat_metadata_script_runner %{buildroot}%{_bindir}/gce_compat_metadata_script_runner -install -d %{buildroot}/etc/google-guest-agent -install -p -m 0755 core-plugin-enabled %{buildroot}/etc/google-guest-agent/core-plugin-enabled %endif %if 0%{?el6} @@ -131,7 +129,6 @@ %{_bindir}/google_guest_agent_manager %{_bindir}/ggactl_plugin %{_exec_prefix}/lib/google/guest_agent/core_plugin -/etc/google-guest-agent/core-plugin-enabled %endif %{_bindir}/google_metadata_script_runner @@ -168,22 +165,20 @@ # Use enable instead of preset because preset is not supported in # chroots. - systemctl enable google-guest-agent.service >/dev/null 2>&1 || : systemctl enable google-startup-scripts.service >/dev/null 2>&1 || : systemctl enable google-shutdown-scripts.service >/dev/null 2>&1 || : systemctl enable gce-workload-cert-refresh.timer >/dev/null 2>&1 || : %if 0%{?build_plugin_manager} - systemctl disable google-guest-compat-manager.service >/dev/null 2>&1 || : + systemctl enable google-guest-compat-manager.service >/dev/null 2>&1 || : systemctl enable google-guest-agent-manager.service >/dev/null 2>&1 || : %endif if [ -d /run/systemd/system ]; then systemctl daemon-reload >/dev/null 2>&1 || : - systemctl start google-guest-agent.service >/dev/null 2>&1 || : systemctl start gce-workload-cert-refresh.timer >/dev/null 2>&1 || : %if 0%{?build_plugin_manager} - systemctl stop google-guest-compat-manager.service >/dev/null 2>&1 || : + systemctl start google-guest-compat-manager.service >/dev/null 2>&1 || : systemctl start google-guest-agent-manager.service >/dev/null 2>&1 || : %endif fi @@ -192,20 +187,23 @@ else # Package upgrade %if 0%{?build_plugin_manager} - systemctl disable google-guest-compat-manager.service >/dev/null 2>&1 || : + systemctl enable google-guest-compat-manager.service >/dev/null 2>&1 || : systemctl enable google-guest-agent-manager.service >/dev/null 2>&1 || : - systemctl enable google-guest-agent.service >/dev/null 2>&1 || : + systemctl disable google-guest-agent.service >/dev/null 2>&1 || : %endif if [ -d /run/systemd/system ]; then systemctl daemon-reload >/dev/null 2>&1 || : %if 0%{?build_plugin_manager} - systemctl stop google-guest-compat-manager.service >/dev/null 2>&1 || : - systemctl stop google-guest-agent-manager.service >/dev/null 2>&1 || : - ggactl_plugin coreplugin stop >/dev/null 2>&1 || : - systemctl start google-guest-agent-manager.service >/dev/null 2>&1 || : + if grep -q "false" "/etc/google-guest-agent/core-plugin-enabled"; then + systemctl enable google-guest-agent.service >/dev/null 2>&1 || : + systemctl start google-guest-agent.service >/dev/null 2>&1 || : + else + systemctl stop google-guest-agent.service >/dev/null 2>&1 || : + fi + systemctl restart google-guest-compat-manager.service >/dev/null 2>&1 || : + systemctl restart google-guest-agent-manager.service >/dev/null 2>&1 || : %endif - systemctl restart google-guest-agent.service >/dev/null 2>&1 || : fi # Re-enable the guest agent service if core plugin was enabled, since the @@ -234,6 +232,7 @@ %if 0%{?build_plugin_manager} systemctl stop google-guest-compat-manager.service >/dev/null 2>&1 || : systemctl stop google-guest-agent-manager.service >/dev/null 2>&1 || : + ggactl_plugin coreplugin stop >/dev/null 2>&1 || : ggactl_plugin dynamic-cleanup >/dev/null 2>&1 || : %endif fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/guest-agent-20251120.01/utils/test.go new/guest-agent-20251208.00/utils/test.go --- old/guest-agent-20251120.01/utils/test.go 2025-11-20 18:49:46.000000000 +0100 +++ new/guest-agent-20251208.00/utils/test.go 2025-12-02 00:11:32.000000000 +0100 @@ -23,10 +23,10 @@ "golang.org/x/crypto/ssh" ) -// MakeRandRSAPubKey generates base64 encoded 256 bit RSA public key for use in tests. +// MakeRandRSAPubKey generates base64 encoded 1024 bit RSA public key for use in tests. func MakeRandRSAPubKey(t *testing.T) string { t.Helper() - prv, err := rsa.GenerateKey(rand.Reader, 256) + prv, err := rsa.GenerateKey(rand.Reader, 1024) if err != nil { t.Fatalf("error generating RSA key: %v", err) } ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/google-guest-agent/vendor.tar.gz /work/SRC/openSUSE:Factory/.google-guest-agent.new.1939/vendor.tar.gz differ: char 15, line 1
