[Bug 2116890] Re: Incorrect shebang in loguserdata.py
Wesley Hershberger
2116890 at bugs.launchpad.net
Mon Jul 28 19:49:54 UTC 2025
### Verification done Caracal ###
ubuntu at juju-3d34e3-caracal-00414188-16:~$ apt-cache policy python3-heat
python3-heat:
Installed: 1:22.0.1-0ubuntu1.1~cloud0
Candidate: 1:22.0.1-0ubuntu1.1~cloud0
Version table:
*** 1:22.0.1-0ubuntu1.1~cloud0 500
500 http://ubuntu-cloud.archive.canonical.com/ubuntu jammy-proposed/caracal/main amd64 Packages
100 /var/lib/dpkg/status
1:22.0.1-0ubuntu1~cloud0 500
500 http://ubuntu-cloud.archive.canonical.com/ubuntu jammy-updates/caracal/main amd64 Packages
1:18.0.1-0ubuntu1.2 500
500 http://availability-zone-1.clouds.archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages
1:18.0.1-0ubuntu1.1 500
500 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages
1:18.0.0-0ubuntu1 500
500 http://availability-zone-1.clouds.archive.ubuntu.com/ubuntu jammy/main amd64 Packages
ubuntu at stg-reproducer-whershberger-project-bastion:~/heat-00414188$ os stack create -t user-data-template.yaml ud0
+---------------------+----------------------------------------+
| Field | Value |
+---------------------+----------------------------------------+
| id | 4e490b2e-dc14-4450-84fd-6b13780ff74e |
| stack_name | ud0 |
| description | Deploy an instance with some user-data |
| creation_time | 2025-07-28T19:46:16Z |
| updated_time | None |
| stack_status | CREATE_IN_PROGRESS |
| stack_status_reason | Stack CREATE started |
+---------------------+----------------------------------------+
ubuntu at stg-reproducer-whershberger-project-bastion:~/heat-00414188$ os server list
+--------------------------------------+---------------------------------+--------+-----------------------------------------------+-----------------------------+----------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+---------------------------------+--------+-----------------------------------------------+-----------------------------+----------+
| 387cad6c-7dd4-41a2-92fc-bd34fd7d4121 | ud0-user-data-inst-h2lusw6sngbi | ACTIVE | ext_net=10.149.109.79; private=192.168.21.171 | noble-server-cloudimg-amd64 | m1.small |
+--------------------------------------+---------------------------------+--------+-----------------------------------------------+-----------------------------+----------+
ubuntu at stg-reproducer-whershberger-project-bastion:~/heat-00414188$ ssh -i heat_key ubuntu at 10.149.109.79
The authenticity of host '10.149.109.79 (10.149.109.79)' can't be established.
ED25519 key fingerprint is SHA256:vcM9duECqyEXHH3+HMdm7tDepqeFDJyvOSPy4ixmOH8.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '10.149.109.79' (ED25519) to the list of known hosts.
... motd elided
ubuntu at ud0-user-data-inst-h2lusw6sngbi:~$ cloud-init status -w
status: done
ubuntu at ud0-user-data-inst-h2lusw6sngbi:~$ echo $?
0
ubuntu at ud0-user-data-inst-h2lusw6sngbi:~$ cat /usr/local/share/hello/hello.txt
Hello, world!
### Verification done Caracal ###
** Tags removed: verification-caracal-needed
** Tags added: verification-caracal-done
--
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to heat in Ubuntu.
https://bugs.launchpad.net/bugs/2116890
Title:
Incorrect shebang in loguserdata.py
Status in Ubuntu Cloud Archive:
Fix Released
Status in Ubuntu Cloud Archive caracal series:
Fix Committed
Status in heat package in Ubuntu:
Fix Released
Status in heat source package in Noble:
Fix Committed
Bug description:
[ Impact ]
Heat templates that include MIME type `x-shellscript` user-data fail due to an
incorrect shebang in loguserdata.py [1].
This failure prevents use of `x-shellscript` user-data in heat
templates [2].
[1] https://review.opendev.org/c/openstack/heat/+/916058
[2] https://docs.openstack.org/heat/latest/template_guide/software_deployment.html
[ Test Plan ]
Deploy OpenStack Caracal. As Charmed Openstack Caracal does not support Noble as
a base, deploy Jammy/Caracal and DRU the heat unit to Noble to test the Noble
package.
Create a stack with this template:
```yaml
heat_template_version: 2021-04-16
description: Deploy an instance with some user-data
resources:
user-data-inst:
type: OS::Nova::Server
properties:
image: noble-server-cloudimg-amd64
flavor: m1.small
key_name: heat_key
networks:
- network: private
- network: ext_net
user_data: |
#!/bin/bash
mkdir -p /usr/local/share/hello
echo "Hello, world!" > /usr/local/share/hello/hello.txt
```
```
os stack create -t user-data-template.yaml ud0
```
Expected result: cloud-init succeeds and /usr/local/share/hello/hello.txt is
created.
Actual result: cloud-init fails:
```
Cloud-init v. 25.1.2-0ubuntu0~24.04.1 running 'modules:final' at Mon, 14 Jul 2025 13:59:07 +0000. Up 82.71 seconds.
/var/lib/cloud/instance/scripts/loguserdata.py: line 15: import: command not found
/var/lib/cloud/instance/scripts/loguserdata.py: line 16: import: command not found
/var/lib/cloud/instance/scripts/loguserdata.py: line 17: import: command not found
/var/lib/cloud/instance/scripts/loguserdata.py: line 18: import: command not found
/var/lib/cloud/instance/scripts/loguserdata.py: line 19: import: command not found
/var/lib/cloud/instance/scripts/loguserdata.py: line 20: import: command not found
/var/lib/cloud/instance/scripts/loguserdata.py: line 23: VAR_PATH: command not found
/var/lib/cloud/instance/scripts/loguserdata.py: line 24: syntax error near unexpected token `('
/var/lib/cloud/instance/scripts/loguserdata.py: line 24: `LOG = logging.getLogger('heat-provision')'
2025-07-14 13:59:07,898 - cc_scripts_user.py[WARNING]: Failed to run module scripts_user (scripts in /var/lib/cloud/instance/scripts)
2025-07-14 13:59:07,899 - log_util.py[WARNING]: Running module scripts_user (<module 'cloudinit.config.cc_scripts_user' from '/usr/lib/python3/dist-packages/cloudinit/config/cc_scripts_user.py'>) failed
Cloud-init v. 25.1.2-0ubuntu0~24.04.1 finished at Mon, 14 Jul 2025 13:59:08 +0000. Datasource DataSourceOpenStackLocal [net,ver=2]. Up 83.21 seconds
```
[ Where problems could occur ]
The modified file is only used as a wrapper when executing cloud-init user-data
of MIME type `x-shellscript` [1]. Regressions in this change should only
impact this specific feature.
[1]
https://git.launchpad.net/ubuntu/+source/heat/tree/heat/engine/clients/os/nova.py?h=applied/ubuntu/noble-
devel#n399
[Other info]
This was fixed in heat 23.0.0.0rc1 by:
commit 29a594c85a7734eefd0cfa635d8fcfca8f9eb60f
From: Takashi Kajinami <kajinamit at oss.nttdata.com>
Date: Wed, 17 Apr 2024 20:08:28 +0900
Subject: Fix wrong shebang of loguserdata.py
Link: https://opendev.org/openstack/heat/commit/29a594c85a7734eefd0cfa635d8fcfca8f9eb60f
To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-archive/+bug/2116890/+subscriptions
More information about the Ubuntu-openstack-bugs
mailing list