[openstack-dev] [Heat] as-update-policy implementation details
Zane Bitter
zbitter at redhat.com
Fri Aug 9 10:54:17 UTC 2013
On 09/08/13 08:11, Chan, Winson C wrote:
> I tested FnGetRefId() in LaunchConfiguration to return unicode(self.physical_resource_name()). It doesn't work so well. When InstanceGroup resolve runtime data and resolve resource refs, the physical resource name (I.e.test_stack-JobServerConfig-jnzjnpomcxv5) replaced { 'Ref': 'JobServerConfig' }. So when InstanceGroup tries to look up the LaunchConfiguration resource during handle_create, it throws a KeyError on the physical resource name. The LaunchConfiguration is using key 'JobServerConfig' in the stack's resources dictionary. Any I missing something here?
Yeah, if you change the meaning of the input to the LaunchConfiguration
property then obviously you need to change what you look up with that
data at the same time. The hacky way to do this is to search through the
stack looking for a resource with that physical resource name. (We used
to have a wrongly-implemented physical_resource_name_find() function for
this purpose, but it has mercifully been removed.) This approach shares
with the existing one the problem of not being able to refer to
LaunchConfigurations outside the same stack. We really need to be able
to orchestrate anything in Heat without having the Resource object that
corresponds to it (in fact, this shouldn't even need to exist - users
should be able to define the resource outside of Heat and pass
references in).
A better way is probably to store the configuration details in the
ResourceData table in the database, and use the id of that row (which
should be a uuid, but isn't) for the resource_id (and Ref id) of the
LaunchConfiguration. There will be some tricky security stuff to get
this right though.
The long-term solution to this is a separate Autoscaling API (or, at
least, database tables) so that we can use the physical name or uuid to
look up a particular launch configuration.
cheers,
Zane.
More information about the OpenStack-dev
mailing list