Skip to content

Commit d68d45b

Browse files
Start packaging compat manager (#498)
1 parent 9b6adf5 commit d68d45b

File tree

6 files changed

+45
-1
lines changed

6 files changed

+45
-1
lines changed

packaging/debian/rules

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ override_dh_auto_install:
2424
install -d debian/google-guest-agent/lib/systemd/system
2525
install -p -m 0644 gce-workload-cert-refresh.timer debian/google-guest-agent/lib/systemd/system/
2626
if [ -d google-guest-agent ]; then\
27+
install -p -m 0644 google-guest-agent/cmd/google_guest_compat_manager/google_guest_compat_manager debian/google-guest-agent/usr/bin/google_guest_compat_manager;\
2728
install -p -m 0644 google-guest-agent/cmd/google_guest_agent/google_guest_agent debian/google-guest-agent/usr/bin/google_guest_agent_manager;\
2829
install -p -m 0644 google-guest-agent/cmd/ggactl/ggactl_plugin_cleanup debian/google-guest-agent/usr/bin/ggactl_plugin_cleanup;\
2930
fi
@@ -34,6 +35,7 @@ override_dh_golang:
3435
override_dh_auto_build:
3536
dh_auto_build -O--buildsystem=golang -- -ldflags="-s -w -X main.version=$(VERSION)" -mod=readonly
3637
if [ -d google-guest-agent ]; then\
38+
VERSION=$(VERSION) make -C google-guest-agent cmd/google_guest_compat_manager/google_guest_compat_manager;\
3739
VERSION=$(VERSION) make -C google-guest-agent cmd/google_guest_agent/google_guest_agent;\
3840
VERSION=$(VERSION) make -C google-guest-agent cmd/ggactl/ggactl_plugin_cleanup;\
3941
fi
@@ -46,12 +48,14 @@ override_dh_systemd_enable:
4648
install -p -m 0644 *.service debian/google-guest-agent/lib/systemd/system/
4749
# Don't include guest agent manager if not building with it.
4850
if [ ! -d google-guest-agent ]; then\
51+
rm -f debian/google-guest-agent/lib/systemd/system/google-guest-compat-manager.service;\
4952
rm -f debian/google-guest-agent/lib/systemd/system/google-guest-agent-manager.service;\
5053
fi
5154
install -d debian/google-guest-agent/lib/systemd/system-preset
5255
install -p -m 0644 *.preset debian/google-guest-agent/lib/systemd/system-preset/
5356
dh_systemd_enable google-guest-agent.service google-startup-scripts.service google-shutdown-scripts.service gce-workload-cert-refresh.timer
5457
if [ -d google-guest-agent ]; then\
58+
dh_systemd_enable google-guest-compat-manager.service;\
5559
dh_systemd_enable google-guest-agent-manager.service;\
5660
fi
5761

@@ -60,5 +64,6 @@ override_dh_systemd_start:
6064
dh_systemd_start google-guest-agent.service
6165
dh_systemd_start gce-workload-cert-refresh.timer
6266
if [ -d google-guest-agent ]; then\
67+
dh_systemd_start google-guest-compat-manager.service;\
6368
dh_systemd_start google-guest-agent-manager.service;\
6469
fi

packaging/googet/agent_install.ps1

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ $manager_path = '"C:\Program Files\Google\Compute Engine\agent\GCEWindowsAgentMa
2222
$manager_display_name = 'Google Compute Engine Agent Manager'
2323
$manager_description = 'Google Compute Engine Agent Manager'
2424

25+
$compat_manager = 'GCEWindowsCompatManager'
26+
$compat_path = '"C:\Program Files\Google\Compute Engine\agent\GCEWindowsCompatManager.exe"'
27+
$compat_display_name = 'Google Compute Engine Compat Manager'
28+
$compat_description = 'Google Compute Engine Compat Manager'
29+
2530
$initial_config = @'
2631
# GCE Instance Configuration
2732
@@ -72,11 +77,19 @@ try {
7277
Set-New-Service $name $display_name $description $path
7378
Set-ServiceConfig $name $path
7479

75-
# Guest Agent Manager service
80+
# Guest Agent Manager and Compat Manager service
7681
if ($install_manager) {
82+
Set-New-Service $compat_manager $compat_display_name $compat_description $compat_path
83+
Set-ServiceConfig $compat_manager $compat_path
84+
7785
Set-New-Service $manager_name $manager_display_name $manager_description $manager_path
7886
Set-ServiceConfig $manager_name $manager_path
7987
} else {
88+
if (Get-Service $compat_manager -ErrorAction SilentlyContinue) {
89+
Stop-Service $compat_manager
90+
& sc.exe delete $compat_manager
91+
}
92+
8093
if (Get-Service $manager_name -ErrorAction SilentlyContinue) {
8194
Stop-Service $manager_name
8295
& sc.exe delete $manager_name
@@ -91,6 +104,7 @@ try {
91104
Restart-Service $name -Verbose
92105

93106
if ($install_manager) {
107+
Restart-Service $compat_manager -Verbose
94108
Restart-Service $manager_name -Verbose
95109
}
96110
}

packaging/googet/agent_uninstall.ps1

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,17 @@
1515
Stop-Service GCEAgent -Verbose
1616
& sc.exe delete GCEAgent
1717

18+
$compat_manager = 'GCEWindowsCompatManager'
1819
$name = 'GCEAgentManager'
1920
$cleanup_exe = "C:\Program Files\Google\Compute Engine\agent\ggactl_plugin_cleanup.exe"
2021

22+
# Stop and Delete compat manager.
23+
if (Get-Service $compat_manager -ErrorAction SilentlyContinue) {
24+
Stop-Service $compat_manager -Verbose
25+
& sc.exe delete $compat_manager
26+
}
27+
28+
# Stop Guest Agent Manager, cleanup all plugins (if present) and delete the service.
2129
if (Get-Service $name -ErrorAction SilentlyContinue) {
2230
Stop-Service $name -Verbose
2331
& $cleanup_exe all

packaging/googet/google-compute-engine-windows.goospec

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"source": "https://github.com/GoogleCloudPlatform/guest-agent/",
99
"files": {
1010
"GCEWindowsAgentManager.exe": "<ProgramFiles>/Google/Compute Engine/agent/GCEWindowsAgentManager.exe",
11+
"GCEWindowsCompatManager.exe": "<ProgramFiles>/Google/Compute Engine/agent/GCEWindowsCompatManager.exe",
1112
"GCEWindowsAgent.exe": "<ProgramFiles>/Google/Compute Engine/agent/GCEWindowsAgent.exe",
1213
"GCEAuthorizedKeysCommand.exe": "<ProgramFiles>/Google/Compute Engine/agent/GCEAuthorizedKeysCommand.exe",
1314
"ggactl_plugin_cleanup.exe": "<ProgramFiles>/Google/Compute Engine/agent/ggactl_plugin_cleanup.exe",
@@ -39,6 +40,7 @@
3940
"include": [
4041
"ggactl_plugin_cleanup.exe",
4142
"GCEWindowsAgent.exe",
43+
"GCEWindowsCompatManager.exe",
4244
"GCEWindowsAgentManager.exe",
4345
"GCEAuthorizedKeysCommand.exe",
4446
"packaging/googet/agent_install.ps1",

packaging/googet/windows_agent_build.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,17 @@ if [[ ! -f "$GUEST_AGENT_REPO/Makefile" ]]; then
3434
# looks for this file during goopack packaging and will fail if not found.
3535
echo "This is a placeholder file so guest agent package build without error. Package will have actual Guest Agent Manager executable instead if both repos are cloned side-by-side." > GCEWindowsAgentManager.exe
3636
echo "This is a placeholder file so guest agent package build without error. Package will have actual Guest Agent Manager executable instead if both repos are cloned side-by-side." > ggactl_plugin_cleanup.exe
37+
echo "This is a placeholder file so guest agent package build without error. Package will have actual Guest Agent Manager executable instead if both repos are cloned side-by-side." > GCEWindowsCompatManager.exe
3738
exit 0
3839
fi
3940

4041
BUILD_DIR=$(pwd)
4142
pushd $GUEST_AGENT_REPO
4243
GOOS=windows VERSION=$version make cmd/google_guest_agent/google_guest_agent
4344
GOOS=windows VERSION=$version make cmd/ggactl/ggactl_plugin_cleanup
45+
GOOS=windows VERSION=$version make cmd/google_guest_compat_manager/google_guest_compat_manager
46+
4447
cp cmd/google_guest_agent/google_guest_agent $BUILD_DIR/GCEWindowsAgentManager.exe
4548
cp cmd/ggactl/ggactl_plugin_cleanup $BUILD_DIR/ggactl_plugin_cleanup.exe
49+
cp cmd/google_guest_compat_manager/google_guest_compat_manager $BUILD_DIR/GCEWindowsCompatManager.exe
4650
popd

packaging/google-guest-agent.spec

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ done
6464
pushd %{name}-extra-%{version}/
6565
VERSION=%{version} make cmd/google_guest_agent/google_guest_agent
6666
VERSION=%{version} make cmd/ggactl/ggactl_plugin_cleanup
67+
VERSION=%{version} make cmd/google_guest_compat_manager/google_guest_compat_manager
6768
popd
6869
%endif
6970

@@ -82,6 +83,7 @@ install -p -m 0644 instance_configs.cfg %{buildroot}/usr/share/google-guest-agen
8283
%if 0%{?build_plugin_manager}
8384
install -p -m 0755 %{name}-extra-%{version}/cmd/google_guest_agent/google_guest_agent %{buildroot}%{_bindir}/google_guest_agent_manager
8485
install -p -m 0755 %{name}-extra-%{version}/cmd/ggactl/ggactl_plugin_cleanup %{buildroot}%{_bindir}/ggactl_plugin_cleanup
86+
install -p -m 0755 %{name}-extra-%{version}/cmd/google_guest_compat_manager/google_guest_compat_manager %{buildroot}%{_bindir}/google_guest_compat_manager
8587
%endif
8688

8789
%if 0%{?el6}
@@ -96,6 +98,7 @@ install -p -m 0644 %{name}.service %{buildroot}%{_unitdir}
9698

9799
%if 0%{?build_plugin_manager}
98100
install -p -m 0644 google-guest-agent-manager.service %{buildroot}%{_unitdir}
101+
install -p -m 0644 google-guest-compat-manager.service %{buildroot}%{_unitdir}
99102
%endif
100103

101104
install -p -m 0644 google-startup-scripts.service %{buildroot}%{_unitdir}
@@ -112,6 +115,7 @@ install -p -m 0644 90-%{name}.preset %{buildroot}%{_presetdir}/90-%{name}.preset
112115
%{_bindir}/google_guest_agent
113116

114117
%if 0%{?build_plugin_manager}
118+
%{_bindir}/google_guest_compat_manager
115119
%{_bindir}/google_guest_agent_manager
116120
%{_bindir}/ggactl_plugin_cleanup
117121
%endif
@@ -127,6 +131,7 @@ install -p -m 0644 90-%{name}.preset %{buildroot}%{_presetdir}/90-%{name}.preset
127131

128132
%if 0%{?build_plugin_manager}
129133
%{_unitdir}/google-guest-agent-manager.service
134+
%{_unitdir}/google-guest-compat-manager.service
130135
%endif
131136

132137
%{_unitdir}/google-startup-scripts.service
@@ -154,6 +159,7 @@ if [ $1 -eq 1 ]; then
154159
systemctl enable gce-workload-cert-refresh.timer >/dev/null 2>&1 || :
155160

156161
%if 0%{?build_plugin_manager}
162+
systemctl enable google-guest-compat-manager.service >/dev/null 2>&1 || :
157163
systemctl enable google-guest-agent-manager.service >/dev/null 2>&1 || :
158164
%endif
159165

@@ -162,6 +168,7 @@ if [ $1 -eq 1 ]; then
162168
systemctl start google-guest-agent.service >/dev/null 2>&1 || :
163169
systemctl start gce-workload-cert-refresh.timer >/dev/null 2>&1 || :
164170
%if 0%{?build_plugin_manager}
171+
systemctl start google-guest-compat-manager.service >/dev/null 2>&1 || :
165172
systemctl start google-guest-agent-manager.service >/dev/null 2>&1 || :
166173
%endif
167174
fi
@@ -173,6 +180,8 @@ else
173180
systemctl daemon-reload >/dev/null 2>&1 || :
174181
systemctl try-restart google-guest-agent.service >/dev/null 2>&1 || :
175182
%if 0%{?build_plugin_manager}
183+
systemctl enable google-guest-compat-manager.service >/dev/null 2>&1 || :
184+
systemctl restart google-guest-compat-manager.service >/dev/null 2>&1 || :
176185
systemctl enable google-guest-agent-manager.service >/dev/null 2>&1 || :
177186
systemctl restart google-guest-agent-manager.service >/dev/null 2>&1 || :
178187
%endif
@@ -183,6 +192,7 @@ fi
183192
if [ $1 -eq 0 ]; then
184193
# Package removal, not upgrade
185194
%if 0%{?build_plugin_manager}
195+
systemctl --no-reload disable google-guest-compat-manager.service >/dev/null 2>&1 || :
186196
systemctl --no-reload disable google-guest-agent-manager.service >/dev/null 2>&1 || :
187197
%endif
188198
systemctl --no-reload disable google-guest-agent.service >/dev/null 2>&1 || :
@@ -192,6 +202,7 @@ if [ $1 -eq 0 ]; then
192202
if [ -d /run/systemd/system ]; then
193203
systemctl stop google-guest-agent.service >/dev/null 2>&1 || :
194204
%if 0%{?build_plugin_manager}
205+
systemctl stop google-guest-compat-manager.service >/dev/null 2>&1 || :
195206
systemctl stop google-guest-agent-manager.service >/dev/null 2>&1 || :
196207
ggactl_plugin_cleanup all >/dev/null 2>&1 || :
197208
%endif

0 commit comments

Comments
 (0)