[Bug 2116890] Re: Incorrect shebang in loguserdata.py

Wesley Hershberger 2116890 at bugs.launchpad.net
Thu Jul 24 20:54:35 UTC 2025


Upload the image & create the key:

$ openstack image create --public --container-format bare --disk-format qcow2 --file ./noble-server-cloudimg-amd64.img noble-server-cloudimg-amd64
...
$ os key create --private-key heat_key heat_key
...


### Verification Done Noble ###

ubuntu at juju-3d34e3-caracal-00414188-2:~$ apt-cache policy python3-heat
python3-heat:
  Installed: 1:22.0.1-0ubuntu1.1
  Candidate: 1:22.0.1-0ubuntu1.1
  Version table:
 *** 1:22.0.1-0ubuntu1.1 100
        100 http://availability-zone-3.clouds.archive.ubuntu.com/ubuntu noble-proposed/main amd64 Packages
        100 /var/lib/dpkg/status
     1:22.0.1-0ubuntu1 500
        500 http://availability-zone-3.clouds.archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages
     1:22.0.0-0ubuntu1 500
        500 http://availability-zone-3.clouds.archive.ubuntu.com/ubuntu noble/main amd64 Packages

ubuntu at stg-reproducer-whershberger-project-bastion:~/heat-00414188$ os stack create -t user-data-template.yaml ud0
+---------------------+----------------------------------------+
| Field               | Value                                  |
+---------------------+----------------------------------------+
| id                  | c6047892-5aa3-416e-bf57-e0b407541f35   |
| stack_name          | ud0                                    |
| description         | Deploy an instance with some user-data |
| creation_time       | 2025-07-24T20:50:42Z                   |
| 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   |
+--------------------------------------+---------------------------------+--------+----------------------------------------------+-----------------------------+----------+
| 5576f6df-b64a-4de2-be05-50f8d667bff0 | ud0-user-data-inst-tm4gn4v44xt4 | ACTIVE | ext_net=10.149.109.97; private=192.168.21.98 | noble-server-cloudimg-amd64 | m1.small |
+--------------------------------------+---------------------------------+--------+----------------------------------------------+-----------------------------+----------+
ubuntu at stg-reproducer-whershberger-project-bastion:~/heat-00414188$ ssh -i heat_key ubuntu at 10.149.109.97
The authenticity of host '10.149.109.97 (10.149.109.97)' can't be established.
ED25519 key fingerprint is SHA256:NxqNVfRVl9vL6AAdKcShhUQj7CoVo1JRzLJkRbnKJ/c.
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.97' (ED25519) to the list of known hosts.

... motd elided

ubuntu at ud0-user-data-inst-tm4gn4v44xt4:~$ cloud-init status -w
status: done
ubuntu at ud0-user-data-inst-tm4gn4v44xt4:~$ echo $?
0
ubuntu at ud0-user-data-inst-tm4gn4v44xt4:~$ cat /usr/local/share/hello/hello.txt
Hello, world!

### Verification Done Noble ###

** Tags removed: verification-needed verification-needed-noble
** Tags added: verification-done verification-done-noble

-- 
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