While converting the resource tracker to use the ComputeNode
object it became apparent that there was a trivial bug in the
way tags were assigned in PciDevicePool.from_dict() and that
the format for pci stats in the examples is wrong.
The bug was that a dict was assigned to the tags field and then
items were added to it as follows:
pool.tags = {}
pool.tags.update(pool_dict)
The setter for objects is over ridden to perform type checking
and coercion for fields. In the above case the tags field is
a dict of strings, so the coercion converts all values in
the dict to be strings (if it can). In the above snippet
the values of pool_dict are not type checked or coerced because
they are added directly to the dict. The correct way to do this
is (it just so happens that pool_dict again here):
pool.tags = pool_dict
The format of the pci stats does not include an extra_info
field as was originally planned by the author. Instead tags
that would have been in extra_info are included as additional
fields. The phys_function tag was intended to have particular
meaning but has now been dropped.
The api samples and related tests for hypervisors-pci-detail-resp
and hypervisors-pci-show-resp do include extra_info, so the
samples and tests are incorrect. This patch corrects them.
The change in the samples is not an API change, only
a correction, so there is no change to the API version. However,
the api samples are included in documentation so this patch is
marked with with a document impact.
DocImpact
Change-Id: I8730f18d660777e23637b4846e06af1c3e14238e