Set statuscode=404 in NotFoundException in tests

when resource can'n be found,neutron will set
statuscode=404 in NotFoundException,so add statuscode
in exception to make fake client have same action.

Change-Id: I6597f080903501d9fe6050893054cc7dba6a595b
Fix start_with_acquired_lock - pass kwargs to func

This method of ThreadGroupManager was not passing kwargs
to the function to be started.

Closes-Bug: #1288627
Change-Id: Icaaa012bcc65c67f3e8ecc2878dee2a78121e357
Fix InternalException raised on stack-show

Getting attributes of a OS::Nova::Server raises a 500 error if the server
doesn't exist. So stack show doesn't work. We should catch the exception
and return the default values of the output keys of the server while
getting attributes to make sure the api works.

Change-Id: If569b4d73abbce93d3c56c45a1eb284720c6e416
Closes-Bug: #1279085
Remove unused versions define in template_format.py

Remove unused 'HEAT_VERSIONS' and 'CFN_VERSIONS' define in
template_format.py.

Change-Id: Icb6920fa481259868b6bf2feaab9859a13c59467
Allow update of disable_rollback

Previously, any change to disable_rollback was ignored during
stack-update.

Change-Id: I76aaf5be379dab5347e392392b2334ab1d8749b0
Closes-Bug: #1290943
Removing unnecessary required=True options

Property with a default value should not have required=True,
since it has no effect (the default value would be used if a property
were not given, making it not required).

Change-Id: I760ed5c010c9ff3c0e4dc0fc7860f1e18147921d
Refactor Template.parse()

Split out Template.parse() as a separate function. This saves an expensive
method call to self.functions() for every potential intrinsic function in
the template, plus makes a template parsing routine available to other
parts of the code that may want to use it, without being tied to a
Template's ideas of what the intrinsic functions available are.

Change-Id: I1d4b847967357dbe5c9960223a063377aec50e5d
Default properties to the empty dict in ResourceGroup

Sets the properties of the grouped resource to {} when it's None to make
sure the resource is built properly.

Change-Id: I2938c741063159ef81a7996d203adaf466cf19c4
Closes-Bug: #1291421
KeyError generated when using a provider template

The function for registering information about provider templates
referenced via urls is causing a KeyError. This patch checks for
checks for the existance of the specified resource befor removing
from the registry. This will prevent KeyErrors in stacks referencing
provider templates that are persisted in the database.

Partial-Bug: #1288541
Change-Id: Id58d5bfeac896d0d52eb4262b25eff3a5fe2238c
Reimplement L3Agent as router's property

We implemented Neutron's L3Agent resource as Heat's RouterL3Agent resource at
once.

  https://review.openstack.org/#/c/61388/

However, that model can change the router_id when doing stack-update.
The bug 1272254 was caused by that model.

We discussed about how to resolve the bug 1272254 with the Heat community.
The conclusion is to remove RouterL3Agent, then to reimplement agent_id as
router's property. This model can't change router_id. So its model can resolve
the bug.

Closes-bug: #1272254
Change-Id: Id9f75920ec46ec32f3e41bdb97f89a7fd09490ec
Replacing NetworkGateway when devices updated

Updating OS::Neutron::NetworkGateway failed when devices property changed.

Currently, NetworkGateway's devices property doesn't have update_allowed=True.
So, UpdateReplace have used when updating devices property.
However, Neutron doesn't allow that same Gateway Services ID exist at a time.
Eventually, 409 error occured by Neutron.

For avoiding above error, I implemented replacing NetworkGateway in handle_update.
The processing order is delete -> create. It can avoid the 409 error.

Change-Id: I4021610355d03eb6ca07272cb1e44ff2b31dfff9
Closes-bug: #1291901
remove attributes from OS::Heat::AutoScalingGroup

The InstanceGroup attribute was inherited from the InstanceGroup
resource, but not implemented properly by OS::Heat::AutoScalingGroup. This
patch makes OS::Heat::AutoScalingGroup explicitly declare no attributes.

Change-Id: Iacf90b4590551a257ddd5442f28872e712da6c88
Closes-Bug: #1291789
Use six.move.xrange to replace xrange

in python3.x, there is no method named xrange(),
it has been replaced by range(),which is equal to xrange()
in python2.x. so we must fix this issue.
we use six module to fix this issue.

Change-Id: Ia901798cf16b9a48982e6845fa3e5deffc3bd509
Closes-Bug: #1268439
Include environment resource in documentation

Generate a specific environment directory with the content of the Heat
etc/ directory to include global template resources in the
documentation.

Change-Id: Ic22c759de4b4df99fd2884704ca7acf84d5e2952
Closes-Bug: #1287164
policy.json allow all users to do stacks:lookup

We should allow all users, including stack users to do a stacks:lookup
otherwise they need to know both the stack name and ID to make a
request.  This allows us to ensure that any authenticated user can
make a request e.g via heatclient, if they can provide a valid name
or stack ID which they have access to.

Change-Id: Iff992dc5026f436eb22f437ea39b9511ed7fe25d
Partial-Bug: #1291097
Merge "Refactor Template.parse()"
Add name property to StructuredDeployment

Without this, StructuredDeployment resources won't be executed in name sorted
order.

Change-Id: I349297a150c8716eac113764755574db6c9191fd
Closes-Bug: #1291614
Tolerate None outputs on deployment handle_signal

Related-Bug: #1291097
Change-Id: I0ae76f39f5313a4a9de2596f4f855fd699b59715
Merge "policy.json allow all users to do stacks:lookup"
Merge "remove attributes from OS::Heat::AutoScalingGroup"