** 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 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
  
+ #Note: an image must be available for use before attempting a file upload
+ I did this through the UI, but cli works too
+ 
  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

Reply via email to