Skip to content

Commit 5ed08f5

Browse files
stepanblyschakStormLiangMS
authored andcommitted
[sonic-package-manager] insert newline in /etc/sonic/generated_services.conf (#3040)
This issue is seen during upgrade from older branches to 202305 with PR sonic-net/sonic-utilities#3037. When sonic-package-manager installs an extension it re-generates /etc/sonic/generated_services.conf. The file does not contain newline at the end. If packages are installed at runtime everything is ok, but when they are installed at build time, /etc/sonic/generated_services.conf gets later appended with new services: ``` echo "{{service}}" | sudo tee -a $GENERATED_SERVICE_FILE ``` This pattern is used multiple times in sonic_debian_extension.j2 script, thus fixing it in sonic-utilities. Signed-off-by: Stepan Blyschak <[email protected]>
1 parent 5f1270a commit 5ed08f5

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

sonic_package_manager/service_creator/creator.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -352,6 +352,7 @@ def update_generated_services_conf_file(self, package: Package, remove=False):
352352
# Write to tmp file and replace the original file with it
353353
with tempfile.NamedTemporaryFile('w', delete=False) as tmp:
354354
tmp.write('\n'.join(list_of_services))
355+
tmp.write('\n')
355356
tmp.flush()
356357

357358
shutil.move(tmp.name, GENERATED_SERVICES_CONF_FILE)

tests/sonic_package_manager/test_service_creator.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,10 @@ def read_file(name):
113113
assert read_file('warm-reboot_order') == 'swss teamd test syncd'
114114
assert read_file('fast-reboot_order') == 'teamd test swss syncd'
115115
assert read_file('test_reconcile') == 'test-process test-process-3'
116-
assert set(read_file('generated_services.conf').split()) == set(['test.service', '[email protected]'])
116+
117+
generated_services_conf_content = read_file('generated_services.conf')
118+
assert generated_services_conf_content.endswith('\n')
119+
assert set(generated_services_conf_content.split()) == set(['test.service', '[email protected]'])
117120

118121

119122
def test_service_creator_with_timer_unit(sonic_fs, manifest, service_creator):

0 commit comments

Comments
 (0)