← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 2117544] [NEW] server create with volume which was created by server image

 

Public bug reported:

Description
===========
Server creation with volume which was created by server image fails 

Steps to reproduce
==================
1. create volume backend server(openstack server create --image testimage --network testnetwork --flavor testflavor --boot-from-volume 10 testserver)
2. create server image(openstack server image create testserver)
3. create volume with image(openstack volume create --size 10 --image testserver --bootable testvolume)
4. create server with volume(openstack server create --volume testvolume --network testnetwork --flavor testflavor testserver2)

Expected result
===============
I expected server creation success

Actual result
=============
BadRequestException: 400: Client Error for url: {url}, Invalid image metadata. Error: A list is required in field img_block_device_mapping, not a str

Environment
===========
Use epoxy version for all components

In Code
=======
When we use image direct, we get image metadata from glance, and we have list for img_block_device_mapping value in nova.
However, when we get image metadata from cinder, we have string for img_block_device_mapping

Glance API(GET /v2/images/{image_id}) returns like below
{
    ...
    "block_device_mapping": "[{...}]",
    ...
}

Cinder API(GET /v3/{project_id}/volumes/{volume_id}) returns like below
{
    "volume": {
        ...
        "volume_image_metadata": {
            ...
            "block_device_mapping": "[{...}]",
            ...
        },
        ...
    }
}

** Affects: nova
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/2117544

Title:
  server create with volume which was created by server image

Status in OpenStack Compute (nova):
  New

Bug description:
  Description
  ===========
  Server creation with volume which was created by server image fails 

  Steps to reproduce
  ==================
  1. create volume backend server(openstack server create --image testimage --network testnetwork --flavor testflavor --boot-from-volume 10 testserver)
  2. create server image(openstack server image create testserver)
  3. create volume with image(openstack volume create --size 10 --image testserver --bootable testvolume)
  4. create server with volume(openstack server create --volume testvolume --network testnetwork --flavor testflavor testserver2)

  Expected result
  ===============
  I expected server creation success

  Actual result
  =============
  BadRequestException: 400: Client Error for url: {url}, Invalid image metadata. Error: A list is required in field img_block_device_mapping, not a str

  Environment
  ===========
  Use epoxy version for all components

  In Code
  =======
  When we use image direct, we get image metadata from glance, and we have list for img_block_device_mapping value in nova.
  However, when we get image metadata from cinder, we have string for img_block_device_mapping

  Glance API(GET /v2/images/{image_id}) returns like below
  {
      ...
      "block_device_mapping": "[{...}]",
      ...
  }

  Cinder API(GET /v3/{project_id}/volumes/{volume_id}) returns like below
  {
      "volume": {
          ...
          "volume_image_metadata": {
              ...
              "block_device_mapping": "[{...}]",
              ...
          },
          ...
      }
  }

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