← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1748942] [NEW] Ironic virt driver should not JSON encode traits in instance_info

 

Public bug reported:

As of queens, the ironic virt driver pushes traits set on the flavor to
the ironic node's instance_info during instance spawn. This list of
traits is currently encoded as a JSON string, inside the JSON-encoded
instance_info. We should not use this double layer of JSON encoding, as
ironic expects instance_info.traits to be a list.

Steps to reproduce
==================

Add a trait to an ironic node:

openstack baremetal node add trait <node> <trait>

Add a required trait to a flavor:

openstack flavor set <flavor> --property 'trait:<trait>=required'

Create an instance using this flavor:

openstack server create ...

Expected result
===============

Nova sets the node's instance_info.traits to a list containing the
trait.

Actual result
=============

Nova sets the node's instance_info.traits to a JSON-encoded string
containing a list containing the trait.

Environment
===========

Nova stable/queens @ 01b756f960ed19ab801994d08d749dd94d729a22

** Affects: nova
     Importance: Undecided
     Assignee: Mark Goddard (mgoddard)
         Status: New

** Changed in: nova
     Assignee: (unassigned) => Mark Goddard (mgoddard)

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

Title:
  Ironic virt driver should not JSON encode traits in instance_info

Status in OpenStack Compute (nova):
  New

Bug description:
  As of queens, the ironic virt driver pushes traits set on the flavor
  to the ironic node's instance_info during instance spawn. This list of
  traits is currently encoded as a JSON string, inside the JSON-encoded
  instance_info. We should not use this double layer of JSON encoding,
  as ironic expects instance_info.traits to be a list.

  Steps to reproduce
  ==================

  Add a trait to an ironic node:

  openstack baremetal node add trait <node> <trait>

  Add a required trait to a flavor:

  openstack flavor set <flavor> --property 'trait:<trait>=required'

  Create an instance using this flavor:

  openstack server create ...

  Expected result
  ===============

  Nova sets the node's instance_info.traits to a list containing the
  trait.

  Actual result
  =============

  Nova sets the node's instance_info.traits to a JSON-encoded string
  containing a list containing the trait.

  Environment
  ===========

  Nova stable/queens @ 01b756f960ed19ab801994d08d749dd94d729a22

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


Follow ups