Resources for Rackspace Auto Scale

This introduces Rackspace::AutoScale::Group, ScalingPolicy,
and WebHook resources, to support the Rackspace Auto Scale
product.

Change-Id: I38b8f368d833b7475f260b8eb7afcc3a2a3770e7
Add Rackspace Cloud DNS Resource

This will be a temporary solution to have a resource for DNS until
Designate is incubated. Also currently work is in progress for a
new API for Designate.
Until then this will serve as a resource for Rackspace Cloud DNS.

Implements: blueprint rax-dns-resource
Change-Id: Ief0c478b9e40f6f9446b386243400f062a941a36
Make check_uptodate compatible with BSD shells

BSD mktemp requires a template for the file/directory name.
GNU mktemp supports the option, but is not mandatory.

This change passes in the template, so that the check_uptodate.sh is
more compatible across different environments.

Change-Id: Id4abb92054363416272f583600e3d8ff2a9f9d42
Closes-Bug: 1246858
Rename admin flag on SqlAlchemy#stack_get

The `admin` flag was only used to avoid doing a tenant_id check between
the stack and the context.tenant_id, so it was renamed to `tenant_safe`
for better clarity.

Change-Id: I32c1156c8782bad39a265c77aad088c96400f69f
Closes-Bug: 1245952
Send usage notifications on major stack events

These notifications can then be used for usage/billing/alarming purposes.

Some of the base fields are based on the existing nova fields:
https://wiki.openstack.org/wiki/SystemUsageData

This patch just has the minimum fields needed we can add more as users
ask.

We can also add more notifications as we need:
- automated actions (autoscaling, restart)
- time based .exists notifications

implements blueprint send-notification
Change-Id: I63ad5402037799842643eb642af15b54ef8d7483
Imported Translations from Transifex

Change-Id: I6d229c1ff736222862051230b8c2072d92a9dbd2
Merge "Make check_uptodate compatible with BSD shells"
Add a man page for heat-manage

Change-Id: I9b3d6b3b227ca2a2a2786837b941fdc420d3b2b6
Closes-bug: #1189651
Merge "Rename admin flag on SqlAlchemy#stack_get"
Merge "Add a man page for heat-manage"
Check that the epel repo exists before adding it

The epel repo that contains cloud-init and other packages needed for the
rackspace resource does not always exists. The setup script will fail if
you try to import the repo when it exists because of running the script
with set -e.

Change-Id: If1f912c2e7cbe3ccd58e10d0ea2e1e07b2114b48
RackConnect compatibility for Cloud Servers

Make the Cloud Servers resource aware of the RackConnect automation.
The Cloud Servers resource should wait for the RackConnect automation to
complete before proceeding with the server configuration.  Additionally,
the server's public IP will have changed, so any previously-fetched
public IP needs to be forgotten.

Blueprint rackconnect

Change-Id: I61676ac821695431cdba0d9a7d3b2e009f6ca3e4
Create a guide for scaling out Heat API's

This documentation describes a guide for scaling out the ReST and
CFN API's based on a devstack installation. HAProxy is used as a load
balancer, redirecting calls from CLI to the several API's instances.

Change-Id: I6efe988ce970f2a3aa08f39050f85dc1621e6774
Closes-bug: #1072958
Imported Translations from Transifex

Change-Id: I136e18c33fa05a83fc8098d944eba4a4aa6c72b9
Merge "Check that the epel repo exists before adding it"
Merge "Send usage notifications on major stack events"
Implement update for neutron network resources

This change allows any updatable properties to be updated
on an existing network without replacement. Documentation
is limited on what properties are updatable, so discovery
was manual.

The method prepare_update_properties can be used by other
neutron resources to implement their updates.

Change-Id: Ib128123544c4a62b4ba672203c1a81cf082a8847
Implement OS::Neutron::SecurityGroup

Some notes on the implementation:
* There is a single list of rules, with the 'direction'
  attribute denoting whether ingress or egress (ingress is the default)
* All attributes are updatable without resource replacement using
  prepare_update_properties.
* Rules update is implemented by:
  * deleting all rules
  * restoring default egress rules which allow all egress
  * adding new rules
* The remote_mode attribute allows switching from remote_ip_prefix
  to remote_group_id based associations
* As documented in the remote_group_id property, a rule can establish
  a self-reference to its own security group by specifying
  remote_mode: remote_group_id and not specifying any value for
  remote_group_id

Implements blueprint native-neutron-securitygroup
Partial-Bug: #1206313
Partial-Bug: #1243686

Change-Id: Id240fe02b5b85d7b11f48411a58e98d2d575c9a0
Implement update for neutron subnet resources

This change allows any updatable properties to be updated
on an existing subnet without replacement. Documentation
is limited on what properties are updatable, so discovery
was manual.

Change-Id: Ia585d1b7d24900f2789f2127a76dd272aa7fb850
Set the waitcondition maxvalue to 12 hours as AWS specifies.

This is just setting an upper bound on the waitcondition of 12 hours.

Change-Id: I6fe25d1465007e5bb164c1a004dcc6b12aa48184