The object infrastructure has a concept of an object name, which
is what we use to determine if something implements a particular
thing, and it is how we look up object classes when we
deserialize them. Since many objects will eventually reference
each other, we should be using their names to determine
compatibility, not their classes.
Related to blueprint structured-object-fields
Change-Id: I2edb8b8475662ad25e9f3319ce5e44317a2d0547
This simply adds the ability to pass the key attribute to the
by-host lookup for aggregates.
Related to blueprint compute-manager-objects
Change-Id: I7651bc1470845b1e3586aa3616809bdf2ef2b4a2
Originally, all of the objects used str() to specify string type
attributes. This prevents the use of unicode values. A previous
patch errantly updated the utility function without bumping all
of the affected objects' versions. This does that, and also
fixes the issue for bare str() attributes.
Change-Id: Iad83589d399309b95c32813a1a660a12e571066b
Closes-bug: 1221346
Almost every object thus far has done this:
changes = {}
for key in self.obj_what_changed():
changes[key] = self[key]
to get a dict of updates to apply to the database. This patch adds
that as part of the base object and makes every place that does
the above to just use that.
Change-Id: I847f5d35181b0305668b107f86faa164e71c3375
Each object with a list duplicated the _make_list() method in its
own module. This removes that duplication and adds a generalized
helper in objects/base.py. The instance object still uses its own
because it has to do a bunch of other stuff in the loop for
efficiency.
Change-Id: Ic910f39087ebc167b2b930979f7951116caf8598
Creates a new DBObjectMixin class for DB-backed objects to use. This
allows us to create non-DB-backed objects without having the common DB
fields automagically added to them.
Related to blueprint unified-object-model
Change-Id: Iaf2d8500505e9acdbffffb1d4bd3db0870ae82a3