Jason Dunsmore [Wed, 24 Jul 2013 20:07:41 +0000 (15:07 -0500)]
Support any distribution without UserData/MetaData
A template without UserData or MetaData sections should work with any
distribution, regardless of whether or not a setup script exists for
it in the Cloud Servers resource. The setup script only exists so that
the UserData and MetaData sections will configure the server.
Jianing YANG [Thu, 11 Jul 2013 15:17:52 +0000 (23:17 +0800)]
make heat-api return a parsable error
add a wsgi middleware (faultwrap) that catches exceptions
and transform those exceptions into a parsable format
according to 'Content-Type' of the request.
When detaching volume, the state of volume changed from 'in-use'
to 'detaching', and then from 'detaching' to 'available'.
The code used to ignore 'detaching' state by assuming the volume
has been detached when its state is not 'in-use' any more.
Now we take care 'detaching' state and raise error if detaching
failed.
Steve Baker [Fri, 5 Jul 2013 04:08:13 +0000 (16:08 +1200)]
Only use a token for openstack client operations.
This uses the same techniques as horizon for getting client
instances with an existing token.
This change also fetches a new auth_token if the context has none,
as will happen when the context is created from saved user_creds
rather than a real request.
While it appears that some code paths will result in an extra call to the
keystone client, the actual calls to keystone will be less. This is
because each client was making its own calls to keystone when
authenticating with a username and password.
Steve Baker [Fri, 19 Jul 2013 02:38:13 +0000 (14:38 +1200)]
Configure standalone pipelines for cfn and cloudwatch.
This allows waitconditions and cloud watch data to authenticate
using just the ec2token middleware. Stacks have been successfully launched
with a standalone heat onto an external grizzly openstack, including working
waitconditions and watch data.
This means that currently when in standalone mode, heat-cfn cannot
authenticate since it defaults to auth strategy keystone (and it appears
that auth strategy ec2 signing has not been implemented yet). This case
is sufficiently obscure that it most likely won't affect anyone at this
stage.
- Add generator.py from Oslo
- Add notifier from Oslo
- Add generator bash script used by other projects to generate configuration
files
- Update openstack-common.conf file
The patch https://review.openstack.org/#/c/36493/ needs
to be merged before this one. I'll rebase this patch and
generate the heat configuration.
Steve Baker [Wed, 10 Jul 2013 03:05:53 +0000 (15:05 +1200)]
Put pre-created resources in state INIT COMPLETE.
Defines an INIT action, and make the resourse state
INIT COMPLETE before they are first created.
Calls to list resources will now include resource that have
not been created yet. This change allows resource topologies
to be displayed throughout the creation of the stack.
Jeff Sloyer [Tue, 16 Jul 2013 18:36:06 +0000 (14:36 -0400)]
add docs from the heat wiki
updated index.rst to mimic the layout of the keystone docs
updated the structure for troubleshooting
ported howto guides from the heat wiki
ported the troubleshooting page from the heat wiki
updated the nav for the man pages and getting started
added docs for a cfn template and hot template
InstanceGroup explicitly supports "custom" versions of AWS::EC2::Instance
(instead of directly using heat.engine.resources.instance.Instance)
but there was no unit test for that feature. Here we add one.
Add missing parameters checking logic to Parameter validation. It
has to be optional, since template validation makes use of the same
Parameter validation code.
Joe Gordon [Fri, 12 Jul 2013 16:08:32 +0000 (17:08 +0100)]
Cleanup and make HACKING.rst DRYer
Reference the OpenStack hacking guide in HACKING.rst and remove
duplicate entries. Add placeholder section for heat specific
rules. heat specific rules can be created using hacking's local check
support.
This avoids registering multiple times the option if the registering
functions are called multiple path by different code paths. It's
necessary for the default configuration sample generator to have options
only registered once.
The update of oslo.notifier is needed to avoid it using the inexistant
$host option.
avoid excessive database calls while loading events
list_events constructs Event objects through Event.load, which causes
every event record previously loaded into memory to be reloaded again.
Furthermore, Event.load will also reload the associated stack, thus
all its resources and template. Another bad thing with that is
reloading a stack will lead to many extra stack static resolution
(including calls to nova to resovle Fn::GetAZs if it's referenced in
the template).
Steve Baker [Thu, 11 Jul 2013 04:08:54 +0000 (16:08 +1200)]
Global disable scheduler _sleep instead of mocking.
It is becoming increasingly difficult to predict when
a call to TaskRunner._sleep needs to be scripted, and is probably an
implementation detail which shouldn't be exposed to unit tests anyway.
This change defines a global which prevents sleeping in calls to _sleep
and toggles that global in HeatTestCase setUp.
Steve Baker [Tue, 9 Jul 2013 04:01:58 +0000 (16:01 +1200)]
Tolerate an empty environment properties.
An environment file containing the following:
properties:
Results in the following error:
File "/home/steveb/dev/localstack/heat/heat/api/openstack/v1/stacks.py",
line 132, in environment
env[self.PARAM_USER_PARAMS].update(parameters)
AttributeError: 'NoneType' object has no attribute 'update'