← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1687554] Re: diskimage-builder: Software Deployments Broken In Xenial

 

** Project changed: fuel-plugin-contrail => glance

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to Glance.
https://bugs.launchpad.net/bugs/1687554

Title:
  diskimage-builder: Software Deployments Broken In Xenial

Status in Glance:
  New

Bug description:
  I am trying to build an image for ubuntu trusty and xenial that works
  with OS::Heat::SoftwareDeployment using diskimage-builder. I installed
  diskimage-builde with

  pip install diskimage-builder

  an run the following scripts to build the images:

  export DISTRIBUTION="ubuntu"
  export DIB_RELEASE="trusty"

  git clone https://git.openstack.org/openstack/tripleo-image-elements.git
  git clone https://git.openstack.org/openstack/heat-agents.git

  export ELEMENTS_PATH=tripleo-image-elements/elements:heat-agents/
  export BASE_ELEMENTS="$DISTRIBUTION selinux-permissive"
  export AGENT_ELEMENTS="os-collect-config os-refresh-config os-apply-config"
  export DEPLOYMENT_BASE_ELEMENTS="heat-config heat-config-script heat-config-ansible"
  export DEPLOYMENT_TOOL=""

  TIMESTAMP=$(date +%Y%m%d%H%M%S)
  export IMAGE_NAME="$DISTRIBUTION-$DIB_RELEASE_$TIMESTAMP"

  disk-image-create vm $BASE_ELEMENTS $AGENT_ELEMENTS \
       $DEPLOYMENT_BASE_ELEMENTS $DEPLOYMENT_TOOL -t raw -o $IMAGE_NAME.raw

  openstack image create --disk-format raw --container-format bare \
      $IMAGE_NAME < $IMAGE_NAME.raw

  
  To build xenial I just set DIB_RELEASE to "xenial". The build process runs fine and the images a uploaded. Then I deploy instances from both images and check the os-collect-config service. On trusty the service is running and executing os-collect-config manually results in a successful run as expected.

  On xenial though, this is what I see:

  root@test:~# lsb_release -a
  No LSB modules are available.
  Distributor ID: Ubuntu
  Description:    Ubuntu 16.04.2 LTS
  Release:    16.04
  Codename:   xenial
  root@test:~# os-collect-config --debug --force
  Source [heat_local] Unavailable.
  Traceback (most recent call last):
    File "/usr/local/bin/os-collect-config", line 11, in <module>
      sys.exit(__main__())
    File "/opt/stack/venvs/os-collect-config/lib/python3.5/site-packages/os_collect_config/collect.py", line 262, in __main__
      collector_kwargs_map=collector_kwargs_map)
    File "/opt/stack/venvs/os-collect-config/lib/python3.5/site-packages/os_collect_config/collect.py", line 166, in collect_all
      content = module.Collector(**collector_kwargs).collect()
    File "/opt/stack/venvs/os-collect-config/lib/python3.5/site-packages/os_collect_config/ec2.py", line 75, in collect
      md = config_drive.get_metadata()
    File "/opt/stack/venvs/os-collect-config/lib/python3.5/site-packages/os_collect_config/config_drive.py", line 173, in get_metadata
      bd = config_drive()
    File "/opt/stack/venvs/os-collect-config/lib/python3.5/site-packages/os_collect_config/config_drive.py", line 166, in config_drive
      for bd in all_block_devices():
    File "/opt/stack/venvs/os-collect-config/lib/python3.5/site-packages/os_collect_config/config_drive.py", line 155, in all_block_devices
      for device in out.split('\n\n'):
  TypeError: a bytes-like object is required, not 'str'
  root@test:~#

  I have no idea what this means or where it might come from. Any help
  is very much appreciated.

  Got the hint that it might be an os-collect-config bug where it seems
  it is not python3 compatible because xenial only ships with python3 by
  default. Therfore, I exported DIB_PYTHON_VERSION=2 before running the
  diskimage-create command, but the image is still broken. Here is the
  output:
  https://gist.github.com/anonymous/f413b6f76194f6ef3391495670250655

  Any ideas?

To manage notifications about this bug go to:
https://bugs.launchpad.net/glance/+bug/1687554/+subscriptions