** Description changed: Heat-dashboard fails to upload files. [Impact] Users cannot upload heat template files via the Openstack dashboard (see failed ui screenshot) "A template is used to automate the deployment of infrastructure, services, and applications." [Test Case] 1) Setup a basic openstack with heat and horizon - generate a heat-template.yaml deployment (attached template.yaml) 2) After the regular cloud setup, try to upload the file via horizon dashboard -> Project -> Stacks -> Launch stack (+) - choose the template.yaml 3) Check openstack-dashboard/0 $/var/log/apache2/error.log and it should have the error ``` [Mon Feb 01 19:46:05.787127 2021] [wsgi:error] [pid 13984:tid 140255296943872] [remote 10.5.3.109:59180] File "/usr/lib/python3/dist-packages/heat_dashboard/content/stacks/forms.py", line 149, in clean [Mon Feb 01 19:46:05.787129 2021] [wsgi:error] [pid 13984:tid 140255296943872] [remote 10.5.3.109:59180] self.clean_uploaded_files('template', _('template'), cleaned, files) [Mon Feb 01 19:46:05.787132 2021] [wsgi:error] [pid 13984:tid 140255296943872] [remote 10.5.3.109:59180] File "/usr/lib/python3/dist-packages/heat_dashboard/content/stacks/forms.py", line 207, in clean_uploaded_files [Mon Feb 01 19:46:05.787135 2021] [wsgi:error] [pid 13984:tid 140255296943872] [remote 10.5.3.109:59180] if tpl.startswith('{'): [Mon Feb 01 19:46:05.787139 2021] [wsgi:error] [pid 13984:tid 140255296943872] [remote 10.5.3.109:59180] TypeError: startswith first arg must be bytes or a tuple of bytes, not str [Mon Feb 01 19:46:05.787145 2021] [wsgi:error] [pid 13984:tid 140255296943872] [remote 10.5.3.109:59180] ``` --------- # use sshuttle for reverse proxy to your openstack instance sshuttle -r ubuntu@X.X.X.X X.X.0.0/24 testing with fix # add my ppa or use debdiff inside of openstack-dashboard/0 # ssh to openstack dashboard container # use new heat-dashboard deb # restart apache2 # try and upload template.yaml again juju ssh openstack-dashboard/0 #remove existing python3-heat-dashboard version sudo apt-get remove python3-heat-dashboard sudo add-apt-repository ppa:hypothetical-lemon/heat-dashboard apt-get update # make sure the version is newest (heat-dashboard_1.5.0-0ubuntu3~cloud1) sudo apt-cache policy python3-heat-dashboard # restart apache2 systemctl restart apache2 # go to error log cd /var/log/apache2 tail -f error.log # in a new terminal on the openstack cli ----- openstack flavor create test + openstack floating ip create ext_net + openstack server list + #find the associated container for reverse-proxy + | 7b790c15-ccd1-469d-85f6-c20321128c3c | juju-d21df1-sru-2003343-9 | ACTIVE | test_admin_net=x.x.x.131 | auto-sync/ubuntu-bionic-daily-amd64-server-20200826-disk1.img | m1.small + #copy id or name + + openstack server add floating ip <name of openstack-dashboard-container> <ip add of new floating ip> #copied cmd from <openstack floating ip list> + # in a separate terminal + sshuttle -r ubuntu@x.x.x.x x.x.x.0/24 + openstack image list - create an image if one is not listed openstack keypair create test-key openstack keypair list try to upload the file via horizon dashboard -> Project -> Stacks -> Launch stack (+) - choose the template.yaml - fill out admin password - Launch (the instance will be created) you can tail the error.logs for apache2 inside of openstack-dashboard/o under /var/log/apache2/error.log I saw no errors when uploading the template file. [Where problems could occur] The information for the forms page could fail to load properly. [Other Info] Patch landed in Train and now going to Stein. This is apython3 API change, Bionic/Queens are on python2, no fix needed in those releases. Openstack: Stein OS: Ubuntu Bionic # how to find new Openstack dashboard credentials credentials (leave a comment if you don't know) ----- # print out openstack login credentials juju config keystone admin-user juju config keystone admin-password #helpful links [0] https://docs.openstack.org/heat/latest/install/launch-instance.html [1] https://docs.openstack.org/heat-dashboard/latest/install/index.html [2] https://docs.openstack.org/newton/user-guide/cli-create-and-manage-stacks.html
** Description changed: Heat-dashboard fails to upload files. [Impact] Users cannot upload heat template files via the Openstack dashboard (see failed ui screenshot) "A template is used to automate the deployment of infrastructure, services, and applications." [Test Case] 1) Setup a basic openstack with heat and horizon - generate a heat-template.yaml deployment (attached template.yaml) 2) After the regular cloud setup, try to upload the file via horizon dashboard -> Project -> Stacks -> Launch stack (+) - choose the template.yaml 3) Check openstack-dashboard/0 $/var/log/apache2/error.log and it should have the error ``` [Mon Feb 01 19:46:05.787127 2021] [wsgi:error] [pid 13984:tid 140255296943872] [remote 10.5.3.109:59180] File "/usr/lib/python3/dist-packages/heat_dashboard/content/stacks/forms.py", line 149, in clean [Mon Feb 01 19:46:05.787129 2021] [wsgi:error] [pid 13984:tid 140255296943872] [remote 10.5.3.109:59180] self.clean_uploaded_files('template', _('template'), cleaned, files) [Mon Feb 01 19:46:05.787132 2021] [wsgi:error] [pid 13984:tid 140255296943872] [remote 10.5.3.109:59180] File "/usr/lib/python3/dist-packages/heat_dashboard/content/stacks/forms.py", line 207, in clean_uploaded_files [Mon Feb 01 19:46:05.787135 2021] [wsgi:error] [pid 13984:tid 140255296943872] [remote 10.5.3.109:59180] if tpl.startswith('{'): [Mon Feb 01 19:46:05.787139 2021] [wsgi:error] [pid 13984:tid 140255296943872] [remote 10.5.3.109:59180] TypeError: startswith first arg must be bytes or a tuple of bytes, not str [Mon Feb 01 19:46:05.787145 2021] [wsgi:error] [pid 13984:tid 140255296943872] [remote 10.5.3.109:59180] ``` --------- # use sshuttle for reverse proxy to your openstack instance sshuttle -r ubuntu@X.X.X.X X.X.0.0/24 testing with fix # add my ppa or use debdiff inside of openstack-dashboard/0 # ssh to openstack dashboard container # use new heat-dashboard deb # restart apache2 # try and upload template.yaml again juju ssh openstack-dashboard/0 #remove existing python3-heat-dashboard version sudo apt-get remove python3-heat-dashboard sudo add-apt-repository ppa:hypothetical-lemon/heat-dashboard apt-get update # make sure the version is newest (heat-dashboard_1.5.0-0ubuntu3~cloud1) sudo apt-cache policy python3-heat-dashboard # restart apache2 systemctl restart apache2 # go to error log cd /var/log/apache2 tail -f error.log # in a new terminal on the openstack cli ----- openstack flavor create test openstack floating ip create ext_net openstack server list #find the associated container for reverse-proxy - | 7b790c15-ccd1-469d-85f6-c20321128c3c | juju-d21df1-sru-2003343-9 | ACTIVE | test_admin_net=x.x.x.131 | auto-sync/ubuntu-bionic-daily-amd64-server-20200826-disk1.img | m1.small + | 7b790c15-ccd1-469d-85f6-c20321128c3c | juju-d21df1-sru-2003343-9 | ACTIVE | test_admin_net=x.x.x.131 | auto-sync/ubuntu-bionic-daily-amd64-server-20200826-disk1.img | m1.small #copy id or name - - openstack server add floating ip <name of openstack-dashboard-container> <ip add of new floating ip> #copied cmd from <openstack floating ip list> - # in a separate terminal - sshuttle -r ubuntu@x.x.x.x x.x.x.0/24 openstack image list - create an image if one is not listed openstack keypair create test-key openstack keypair list + + openstack server add floating ip <name of openstack-dashboard-container> <ip add of new floating ip> #copied cmd from <openstack floating ip list> + # in a separate terminal + sshuttle -r ubuntu@x.x.x.x x.x.x.0/24 + + # open a private session with brower + copy and paste ip from your floating ip list command into the browser url try to upload the file via horizon dashboard -> Project -> Stacks -> Launch stack (+) - choose the template.yaml - fill out admin password - Launch (the instance will be created) you can tail the error.logs for apache2 inside of openstack-dashboard/o under /var/log/apache2/error.log I saw no errors when uploading the template file. [Where problems could occur] The information for the forms page could fail to load properly. [Other Info] Patch landed in Train and now going to Stein. This is apython3 API change, Bionic/Queens are on python2, no fix needed in those releases. Openstack: Stein OS: Ubuntu Bionic # how to find new Openstack dashboard credentials credentials (leave a comment if you don't know) ----- # print out openstack login credentials juju config keystone admin-user juju config keystone admin-password #helpful links [0] https://docs.openstack.org/heat/latest/install/launch-instance.html [1] https://docs.openstack.org/heat-dashboard/latest/install/index.html [2] https://docs.openstack.org/newton/user-guide/cli-create-and-manage-stacks.html -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1914100 Title: python3-heat-dashboard launch stack fails To manage notifications about this bug go to: https://bugs.launchpad.net/cloud-archive/+bug/1914100/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs