24465652 Update Heat for the Mitaka release
authorLaszlo Peter <laszlo.peter@oracle.com>
Wed, 07 Sep 2016 14:48:41 -0700
changeset 6850 f8d3bc724af7
parent 6849 f9a2279efa0d
child 6851 f984e52b96bb
24465652 Update Heat for the Mitaka release 21512755 HEAT service fails after deploying broken HOT template
components/openstack/heat/Makefile
components/openstack/heat/files/heat-upgrade
components/openstack/heat/files/heat.conf
components/openstack/heat/heat.license
components/openstack/heat/heat.p5m
components/openstack/heat/patches/01-heat-conf.patch
components/openstack/heat/patches/02-nopycrypto.patch
components/openstack/heat/patches/03-requirements.patch
components/openstack/heat/patches/04-launchpad-1496277.patch
components/openstack/heat/patches/05-neutron-names-required.patch
components/openstack/heat/patches/07-heat-plugin-defaults.patch
components/openstack/heat/patches/08-mysql_cluster_support.patch
--- a/components/openstack/heat/Makefile	Wed Sep 07 14:48:41 2016 -0700
+++ b/components/openstack/heat/Makefile	Wed Sep 07 14:48:41 2016 -0700
@@ -26,20 +26,19 @@
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		heat
-COMPONENT_CODENAME=	kilo
-COMPONENT_VERSION=	2015.1.2
-COMPONENT_BE_VERSION=	2015.1
+COMPONENT_CODENAME=	mitaka
+COMPONENT_VERSION=	6.0.0
+COMPONENT_BE_VERSION=	2016.1
 COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
-    sha256:5cf5dab1496304d81b060f1ce58f0c2d36a91c5a3305a4f91ec3057ac229d6ae
-COMPONENT_ARCHIVE_URL=	http://launchpad.net/$(COMPONENT_NAME)/$(COMPONENT_CODENAME)/$(COMPONENT_VERSION)/+download/$(COMPONENT_ARCHIVE)
+    sha256:b89f14dc2421b94f8c322557b93959e2b6aa3dcc9cf739ef392f5f30c326b6e5
+COMPONENT_ARCHIVE_URL=	https://tarballs.openstack.org/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
 COMPONENT_SIG_URL=	$(COMPONENT_ARCHIVE_URL).asc
 COMPONENT_PROJECT_URL=	http://www.openstack.org/
 COMPONENT_BUGDB=	service/heat
-IPS_COMPONENT_VERSION=	0.$(COMPONENT_VERSION)
 
-TPNO=			25786
+TPNO=			30355
 
 PKG_VARS +=		COMPONENT_BE_VERSION
 
@@ -82,14 +81,15 @@
 # integrated
 test:		$(NO_TESTS)
 
-system-test:    $(NO_TESTS)
-
+system-test:	$(NO_TESTS)
 
 REQUIRED_PACKAGES += cloud/openstack/openstack-common
 REQUIRED_PACKAGES += library/python/eventlet-27
 REQUIRED_PACKAGES += library/python/iniparse-27
+REQUIRED_PACKAGES += library/python/oslo.concurrency-27
 REQUIRED_PACKAGES += library/python/oslo.config-27
 REQUIRED_PACKAGES += library/python/oslo.i18n-27
+REQUIRED_PACKAGES += library/python/oslo.log-27
 REQUIRED_PACKAGES += library/python/setuptools-27
 REQUIRED_PACKAGES += library/python/six-27
 REQUIRED_PACKAGES += library/python/sqlalchemy-27
--- a/components/openstack/heat/files/heat-upgrade	Wed Sep 07 14:48:41 2016 -0700
+++ b/components/openstack/heat/files/heat-upgrade	Wed Sep 07 14:48:41 2016 -0700
@@ -28,10 +28,26 @@
     move_conf
 
 HEAT_CONF_MAPPINGS = {
-    # Deprecated group/name
-    ('DEFAULT', 'log-format'): (None, None),
-    ('DEFAULT', 'use-sylog'): (None, None),
+    # Deprecated group/name in Liberty
+    ('DEFAULT', 'rpc_thread_pool_size'):
+        ('DEFAULT', 'executor_thread_pool_size'),
+    ('DEFAULT', 'log_format'): (None, None),
+    ('DEFAULT', 'use_syslog'): (None, None),
+    # Deprecated group/name in Mitaka
+    ('profiler', 'profiler_enabled'): ('profiler', 'enabled'),
+    ('DEFAULT', 'instance_user'): (None, None),
     ('DEFAULT', 'list_notifier_drivers'): (None, None),
+    ('DEFAULT', 'matchmaker_heartbeat_freq'): (None, None),
+    ('DEFAULT', 'matchmaker_heartbeat_ttl'): (None, None),
+    ('DEFAULT', 'notification_driver'):
+        ('oslo_messaging_notifications', 'driver'),
+    ('DEFAULT', 'notification_topics'):
+        ('oslo_messaging_notifications', 'topics'),
+    ('DEFAULT', 'policy_default_rule'): ('oslo_policy', 'policy_default_rule'),
+    ('DEFAULT', 'policy_dirs'): ('oslo_policy', 'policy_dirs'),
+    ('DEFAULT', 'policy_file'): ('oslo_policy', 'policy_file'),
+    ('DEFAULT', 'rpc_zmq_port'): (None, None),
+    ('DEFAULT', 'use_syslog_rfc_format'): (None, None),
 }
 
 HEAT_CONF_EXCEPTIONS = [
@@ -76,19 +92,6 @@
         modify_conf('/etc/heat/heat.conf', HEAT_CONF_MAPPINGS,
                     HEAT_CONF_EXCEPTIONS)
 
-    config = iniparse.RawConfigParser()
-    config.read('/etc/heat/heat.conf')
-    # In certain cases the database section does not exist and the
-    # default database chosen is sqlite.
-    if config.has_section('database'):
-        db_connection = config.get('database', 'connection')
-
-        if db_connection.startswith('mysql'):
-            engine = sqlalchemy.create_engine(db_connection)
-            if engine.url.username != '%SERVICE_USER%':
-                alter_mysql_tables(engine)
-                print "altered character set to utf8 in heat tables"
-
     # update the current version
     check_call(['/usr/sbin/svccfg', '-s', os.environ['SMF_FMRI'], 'setprop',
                'config/upgrade-id', '=', pkg_ver])
--- a/components/openstack/heat/files/heat.conf	Wed Sep 07 14:48:41 2016 -0700
+++ b/components/openstack/heat/files/heat.conf	Wed Sep 07 14:48:41 2016 -0700
@@ -7,6 +7,7 @@
 # The HTTP Header that will be used to determine which the original request
 # protocol scheme was, even if it was removed by an SSL terminator proxy.
 # (string value)
+# Deprecated group/name - [DEFAULT]/secure_proxy_ssl_header
 #secure_proxy_ssl_header = X-Forwarded-Proto
 
 #
@@ -15,17 +16,7 @@
 
 # Name of the engine node. This can be an opaque identifier. It is not
 # necessarily a hostname, FQDN, or IP address. (string value)
-#host = heat
-
-#
-# From heat.common.config
-#
-
-# The default user for new instances. This option is deprecated and will be
-# removed in the Juno release. If it's empty, Heat will use the default user
-# set up with your cloud image (for OS::Nova::Server) or 'ec2-user' (for
-# AWS::EC2::Instance). (string value)
-instance_user =
+#host =
 
 # List of directories to search for plug-ins. (list value)
 #plugin_dirs = /usr/lib/heat
@@ -37,6 +28,16 @@
 # Allowed values: password, trusts
 #deferred_auth_method = trusts
 
+# Allow reauthentication on token expiry, such that long-running tasks may
+# complete. Note this defeats the expiry of any provided user tokens. (string
+# value)
+# Allowed values: '', trusts
+#reauthentication_auth_method =
+
+# Gap, in seconds, to determine whether the given token is about to expire.
+# (integer value)
+#stale_token_duration = 30
+
 # Subset of trustor roles to be delegated to heat. If left unset, all roles of
 # a user will be delegated to heat when creating a stack. (list value)
 #trusts_delegated_roles =
@@ -53,6 +54,15 @@
 # to disable retries. (integer value)
 #action_retry_limit = 5
 
+# Number of times to retry when a client encounters an expected intermittent
+# error. Set to 0 to disable retries. (integer value)
+#client_retry_limit = 2
+
+# Number of times to check whether an interface has been attached or detached.
+# (integer value)
+# Minimum value: 1
+#max_interface_check_attempts = 10
+
 # Controls how many events will be pruned whenever a stack's events exceed
 # max_events_per_stack. Set this lower to keep more events at the expense of
 # more frequent purges. (integer value)
@@ -75,7 +85,7 @@
 #engine_life_check_timeout = 2
 
 # Enable the legacy OS::Heat::CWLiteAlarm resource. (boolean value)
-#enable_cloud_watch_lite = true
+#enable_cloud_watch_lite = false
 
 # Enable the preview Stack Abandon feature. (boolean value)
 #enable_stack_abandon = false
@@ -84,9 +94,13 @@
 #enable_stack_adopt = false
 
 # Enables engine with convergence architecture. All stacks with this option
-# will be created using convergence engine . (boolean value)
+# will be created using convergence engine. (boolean value)
 #convergence_engine = false
 
+# On update, enables heat to collect existing resource properties from reality
+# and converge to updated template. (boolean value)
+#observe_on_update = false
+
 # Template default for how the server should receive the metadata required for
 # software configuration. POLL_SERVER_CFN will allow calls to the cfn API
 # action DescribeStackResource authenticated with the provided keypair
@@ -94,8 +108,9 @@
 # Heat API resource-show using the provided keystone credentials (requires
 # keystone v3 API, and configured stack_user_* config options). POLL_TEMP_URL
 # will create and populate a Swift TempURL with metadata for polling (requires
-# object-store endpoint which supports TempURL). (string value)
-# Allowed values: POLL_SERVER_CFN, POLL_SERVER_HEAT, POLL_TEMP_URL
+# object-store endpoint which supports TempURL).ZAQAR_MESSAGE will create a
+# dedicated zaqar queue and post the metadata for polling. (string value)
+# Allowed values: POLL_SERVER_CFN, POLL_SERVER_HEAT, POLL_TEMP_URL, ZAQAR_MESSAGE
 #default_software_config_transport = POLL_SERVER_CFN
 
 # Template default for how the server should signal to heat with the deployment
@@ -103,10 +118,16 @@
 # (requires enabled heat-api-cfn). TEMP_URL_SIGNAL will create a Swift TempURL
 # to be signaled via HTTP PUT (requires object-store endpoint which supports
 # TempURL). HEAT_SIGNAL will allow calls to the Heat API resource-signal using
-# the provided keystone credentials (string value)
-# Allowed values: CFN_SIGNAL, TEMP_URL_SIGNAL, HEAT_SIGNAL
+# the provided keystone credentials. ZAQAR_SIGNAL will create a dedicated zaqar
+# queue to be signaled using the provided keystone credentials. (string value)
+# Allowed values: CFN_SIGNAL, TEMP_URL_SIGNAL, HEAT_SIGNAL, ZAQAR_SIGNAL
 #default_deployment_signal_transport = CFN_SIGNAL
 
+# Stacks containing these tag names will be hidden. Multiple tags should be
+# given in a comma-delimited list (eg. hidden_stack_tags=hide_me,me_too). (list
+# value)
+#hidden_stack_tags = data-processing-cluster
+
 # Deprecated. (string value)
 #onready = <None>
 
@@ -123,18 +144,20 @@
 # resource's orchestration id. (boolean value)
 #stack_scheduler_hints = false
 
-#
-# From heat.common.config
-#
+# Encrypt template parameters that were marked as hidden and also all the
+# resource properties before storing them in database. (boolean value)
+#encrypt_parameters_and_properties = false
 
 # Seconds between running periodic tasks. (integer value)
 #periodic_interval = 60
 
-# URL of the Heat metadata server. (string value)
-#heat_metadata_server_url =
+# URL of the Heat metadata server. NOTE: Setting this is only needed if you
+# require instances to use a different endpoint than in the keystone catalog
+# (string value)
+#heat_metadata_server_url = <None>
 
 # URL of the Heat waitcondition server. (string value)
-#heat_waitcondition_server_url =
+#heat_waitcondition_server_url = <None>
 
 # URL of the Heat CloudWatch server. (string value)
 #heat_watch_server_url =
@@ -175,14 +198,14 @@
 #max_nested_stack_depth = 5
 
 # Number of heat-engine processes to fork and run. (integer value)
-num_engine_workers = 1
+num_engine_workers = 4
 
 #
 # From heat.common.crypt
 #
 
 # Key used to encrypt authentication info in the database. Length of this key
-# must be 16, 24 or 32 characters. (string value)
+# must be 32 characters. (string value)
 #auth_encryption_key = notgood but just long enough i t
 
 #
@@ -217,9 +240,6 @@
 # Default publisher_id for outgoing notifications. (string value)
 #default_publisher_id = <None>
 
-# List of drivers to send notifications (DEPRECATED). (multi valued)
-#list_notifier_drivers =
-
 #
 # From heat.engine.resources
 #
@@ -228,108 +248,89 @@
 #loadbalancer_template = <None>
 
 #
-# From heat.openstack.common.eventlet_backdoor
-#
-
-# Enable eventlet backdoor.  Acceptable values are 0, <port>, and
-# <start>:<end>, where 0 results in listening on a random tcp port number;
-# <port> results in listening on the specified port number (and not enabling
-# backdoor if that port is in use); and <start>:<end> results in listening on
-# the smallest unused port number within the specified range of port numbers.
-# The chosen port is displayed in the service's log file. (string value)
-#backdoor_port = <None>
-
-#
-# From heat.openstack.common.policy
-#
-
-# The JSON file that defines policies. (string value)
-#policy_file = policy.json
-
-# Default rule. Enforced when a requested rule is not found. (string value)
-#policy_default_rule = default
-
-# Directories where policy configuration files are stored. They can be relative
-# to any directory in the search path defined by the config_dir option, or
-# absolute paths. The file defined by policy_file must exist for these
-# directories to be searched. (multi valued)
-#policy_dirs = policy.d
-
-#
 # From oslo.log
 #
 
-# Print debugging output (set logging level to DEBUG instead of default WARNING
-# level). (boolean value)
+# If set to true, the logging level will be set to DEBUG instead of the default
+# INFO level. (boolean value)
 #debug = false
 
-# Print more verbose output (set logging level to INFO instead of default
-# WARNING level). (boolean value)
-#verbose = false
+# If set to false, the logging level will be set to WARNING instead of the
+# default INFO level. (boolean value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#verbose = true
 
 # The name of a logging configuration file. This file is appended to any
 # existing logging configuration files. For details about logging configuration
-# files, see the Python logging module documentation. (string value)
+# files, see the Python logging module documentation. Note that when logging
+# configuration files are used then all logging configuration is set in the
+# configuration file and other logging configuration options are ignored (for
+# example, logging_context_format_string). (string value)
 # Deprecated group/name - [DEFAULT]/log_config
 #log_config_append = <None>
 
-# DEPRECATED. A logging.Formatter log message format string which may use any
-# of the available logging.LogRecord attributes. This option is deprecated.
-# Please use logging_context_format_string and logging_default_format_string
-# instead. (string value)
-#log_format = <None>
-
-# Format string for %%(asctime)s in log records. Default: %(default)s . (string
+# Defines the format string for %%(asctime)s in log records. Default:
+# %(default)s . This option is ignored if log_config_append is set. (string
 # value)
 #log_date_format = %Y-%m-%d %H:%M:%S
 
-# (Optional) Name of log file to output to. If no default is set, logging will
-# go to stdout. (string value)
+# (Optional) Name of log file to send logging output to. If no default is set,
+# logging will go to stderr as defined by use_stderr. This option is ignored if
+# log_config_append is set. (string value)
 # Deprecated group/name - [DEFAULT]/logfile
 #log_file = <None>
 
-# (Optional) The base directory used for relative --log-file paths. (string
-# value)
+# (Optional) The base directory used for relative log_file  paths. This option
+# is ignored if log_config_append is set. (string value)
 # Deprecated group/name - [DEFAULT]/logdir
 #log_dir = <None>
 
-# Use syslog for logging. Existing syslog format is DEPRECATED during I, and
-# will change in J to honor RFC5424. (boolean value)
+# Uses logging handler designed to watch file system. When log file is moved or
+# removed this handler will open a new log file with specified path
+# instantaneously. It makes sense only if log_file option is specified and
+# Linux platform is used. This option is ignored if log_config_append is set.
+# (boolean value)
+#watch_log_file = false
+
+# Use syslog for logging. Existing syslog format is DEPRECATED and will be
+# changed later to honor RFC5424. This option is ignored if log_config_append
+# is set. (boolean value)
 #use_syslog = false
 
-# (Optional) Enables or disables syslog rfc5424 format for logging. If enabled,
-# prefixes the MSG part of the syslog message with APP-NAME (RFC5424). The
-# format without the APP-NAME is deprecated in I, and will be removed in J.
-# (boolean value)
-#use_syslog_rfc_format = false
-
-# Syslog facility to receive log lines. (string value)
+# Syslog facility to receive log lines. This option is ignored if
+# log_config_append is set. (string value)
 #syslog_log_facility = LOG_USER
 
-# Log output to standard error. (boolean value)
+# Log output to standard error. This option is ignored if log_config_append is
+# set. (boolean value)
 #use_stderr = true
 
 # Format string to use for log messages with context. (string value)
 #logging_context_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s
 
-# Format string to use for log messages without context. (string value)
+# Format string to use for log messages when context is undefined. (string
+# value)
 #logging_default_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s
 
-# Data to append to log format when level is DEBUG. (string value)
+# Additional data to append to log message when logging level for the message
+# is DEBUG. (string value)
 #logging_debug_format_suffix = %(funcName)s %(pathname)s:%(lineno)d
 
 # Prefix each line of exception output with this format. (string value)
-#logging_exception_prefix = %(asctime)s.%(msecs)03d %(process)d TRACE %(name)s %(instance)s
+#logging_exception_prefix = %(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s
 
-# List of logger=LEVEL pairs. (list value)
-#default_log_levels = amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN
+# Defines the format string for %(user_identity)s that is used in
+# logging_context_format_string. (string value)
+#logging_user_identity_format = %(user)s %(tenant)s %(domain)s %(user_domain)s %(project_domain)s
+
+# List of package logging levels in logger=LEVEL pairs. This option is ignored
+# if log_config_append is set. (list value)
+#default_log_levels = amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN,taskflow=WARN,keystoneauth=WARN,oslo.cache=INFO,dogpile.core.dogpile=INFO
 
 # Enables or disables publication of error events. (boolean value)
 #publish_errors = false
 
-# Enables or disables fatal status of deprecations. (boolean value)
-#fatal_deprecations = false
-
 # The format for an instance that is passed with the log message. (string
 # value)
 #instance_format = "[instance: %(uuid)s] "
@@ -338,19 +339,27 @@
 # value)
 #instance_uuid_format = "[instance: %(uuid)s] "
 
+# Enables or disables fatal status of deprecations. (boolean value)
+#fatal_deprecations = false
+
 #
 # From oslo.messaging
 #
 
+# Size of RPC connection pool. (integer value)
+# Deprecated group/name - [DEFAULT]/rpc_conn_pool_size
+#rpc_conn_pool_size = 30
+
 # ZeroMQ bind address. Should be a wildcard (*), an ethernet interface, or IP.
 # The "host" option should point or resolve to this address. (string value)
 #rpc_zmq_bind_address = *
 
 # MatchMaker driver. (string value)
-#rpc_zmq_matchmaker = local
+# Allowed values: redis, dummy
+#rpc_zmq_matchmaker = redis
 
-# ZeroMQ receiver listening port. (integer value)
-#rpc_zmq_port = 9501
+# Type of concurrency used. Either "native" or "eventlet" (string value)
+#rpc_zmq_concurrency = eventlet
 
 # Number of ZeroMQ contexts, defaults to 1. (integer value)
 #rpc_zmq_contexts = 1
@@ -366,25 +375,41 @@
 # "host" option, if running Nova. (string value)
 #rpc_zmq_host = localhost
 
-# Seconds to wait before a cast expires (TTL). Only supported by impl_zmq.
-# (integer value)
-#rpc_cast_timeout = 30
+# Seconds to wait before a cast expires (TTL). The default value of -1
+# specifies an infinite linger period. The value of 0 specifies no linger
+# period. Pending messages shall be discarded immediately when the socket is
+# closed. Only supported by impl_zmq. (integer value)
+#rpc_cast_timeout = -1
 
-# Heartbeat frequency. (integer value)
-#matchmaker_heartbeat_freq = 300
+# The default number of seconds that poll should wait. Poll raises timeout
+# exception when timeout expired. (integer value)
+#rpc_poll_timeout = 1
 
-# Heartbeat time-to-live. (integer value)
-#matchmaker_heartbeat_ttl = 600
+# Expiration timeout in seconds of a name service record about existing target
+# ( < 0 means no timeout). (integer value)
+#zmq_target_expire = 120
+
+# Use PUB/SUB pattern for fanout methods. PUB/SUB always uses proxy. (boolean
+# value)
+#use_pub_sub = true
 
-# Size of RPC thread pool. (integer value)
-#rpc_thread_pool_size = 64
+# Minimal port number for random ports range. (port value)
+# Minimum value: 0
+# Maximum value: 65535
+#rpc_zmq_min_port = 49152
 
-# Driver or drivers to handle sending notifications. (multi valued)
-#notification_driver =
+# Maximal port number for random ports range. (integer value)
+# Minimum value: 1
+# Maximum value: 65536
+#rpc_zmq_max_port = 65536
 
-# AMQP topic used for OpenStack notifications. (list value)
-# Deprecated group/name - [rpc_notifier2]/topics
-#notification_topics = notifications
+# Number of retries to find free port number before fail with ZMQBindError.
+# (integer value)
+#rpc_zmq_bind_port_retries = 100
+
+# Size of executor thread pool. (integer value)
+# Deprecated group/name - [DEFAULT]/rpc_thread_pool_size
+#executor_thread_pool_size = 64
 
 # Seconds to wait for a response from a call. (integer value)
 #rpc_response_timeout = 60
@@ -394,7 +419,7 @@
 # configuration. (string value)
 #transport_url = <None>
 
-# The messaging driver to use, defaults to rabbit. Other drivers include qpid
+# The messaging driver to use, defaults to rabbit. Other drivers include amqp
 # and zmq. (string value)
 #rpc_backend = rabbit
 
@@ -402,6 +427,40 @@
 # exchange name specified in the transport_url option. (string value)
 #control_exchange = openstack
 
+#
+# From oslo.service.periodic_task
+#
+
+# Some periodic tasks can be run in a separate process. Should we run them
+# here? (boolean value)
+#run_external_periodic_tasks = true
+
+#
+# From oslo.service.service
+#
+
+# Enable eventlet backdoor.  Acceptable values are 0, <port>, and
+# <start>:<end>, where 0 results in listening on a random tcp port number;
+# <port> results in listening on the specified port number (and not enabling
+# backdoor if that port is in use); and <start>:<end> results in listening on
+# the smallest unused port number within the specified range of port numbers.
+# The chosen port is displayed in the service's log file. (string value)
+#backdoor_port = <None>
+
+# Enable eventlet backdoor, using the provided path as a unix socket that can
+# receive connections. This option is mutually exclusive with 'backdoor_port'
+# in that only one should be provided. If both are provided then the existence
+# of this option overrides the usage of that option. (string value)
+#backdoor_socket = <None>
+
+# Enables or disables logging values of all registered options when starting a
+# service (at DEBUG level). (boolean value)
+#log_options = true
+
+# Specify a timeout after which a gracefully shutdown server will exit. Zero
+# value means endless wait. (integer value)
+#graceful_shutdown_timeout = 60
+
 
 [auth_password]
 
@@ -417,6 +476,73 @@
 #allowed_auth_uris =
 
 
+[cache]
+
+#
+# From oslo.cache
+#
+
+# Prefix for building the configuration dictionary for the cache region. This
+# should not need to be changed unless there is another dogpile.cache region
+# with the same configuration name. (string value)
+#config_prefix = cache.oslo
+
+# Default TTL, in seconds, for any cached item in the dogpile.cache region.
+# This applies to any cached method that doesn't have an explicit cache
+# expiration time defined for it. (integer value)
+#expiration_time = 600
+
+# Dogpile.cache backend module. It is recommended that Memcache with pooling
+# (oslo_cache.memcache_pool) or Redis (dogpile.cache.redis) be used in
+# production deployments.  Small workloads (single process) like devstack can
+# use the dogpile.cache.memory backend. (string value)
+#backend = dogpile.cache.null
+
+# Arguments supplied to the backend module. Specify this option once per
+# argument to be passed to the dogpile.cache backend. Example format:
+# "<argname>:<value>". (multi valued)
+#backend_argument =
+
+# Proxy classes to import that will affect the way the dogpile.cache backend
+# functions. See the dogpile.cache documentation on changing-backend-behavior.
+# (list value)
+#proxies =
+
+# Global toggle for caching. (boolean value)
+#enabled = false
+
+# Extra debugging from the cache backend (cache keys, get/set/delete/etc
+# calls). This is only really useful if you need to see the specific cache-
+# backend get/set/delete calls with the keys/values.  Typically this should be
+# left set to false. (boolean value)
+#debug_cache_backend = false
+
+# Memcache servers in the format of "host:port". (dogpile.cache.memcache and
+# oslo_cache.memcache_pool backends only). (list value)
+#memcache_servers = localhost:11211
+
+# Number of seconds memcached server is considered dead before it is tried
+# again. (dogpile.cache.memcache and oslo_cache.memcache_pool backends only).
+# (integer value)
+#memcache_dead_retry = 300
+
+# Timeout in seconds for every call to a server. (dogpile.cache.memcache and
+# oslo_cache.memcache_pool backends only). (integer value)
+#memcache_socket_timeout = 3
+
+# Max total number of open connections to every memcached server.
+# (oslo_cache.memcache_pool backend only). (integer value)
+#memcache_pool_maxsize = 10
+
+# Number of seconds a connection to memcached is held unused in the pool before
+# it is closed. (oslo_cache.memcache_pool backend only). (integer value)
+#memcache_pool_unused_timeout = 60
+
+# Number of seconds that an operation will wait to get a memcache client
+# connection. (integer value)
+#memcache_pool_connection_get_timeout = 10
+
+
 [clients]
 
 #
@@ -485,10 +611,6 @@
 # If set, then the server's certificate will not be verified. (boolean value)
 #insecure = <None>
 
-#
-# From heat.common.config
-#
-
 # Allow client's debug log output. (boolean value)
 #http_log_debug = false
 
@@ -538,10 +660,6 @@
 # If set, then the server's certificate will not be verified. (boolean value)
 #insecure = <None>
 
-#
-# From heat.common.config
-#
-
 # Optional heat url in format like http://0.0.0.0:8004/v1/%(tenant_id)s.
 # (string value)
 #url =
@@ -569,6 +687,9 @@
 # If set, then the server's certificate will not be verified. (boolean value)
 #insecure = <None>
 
+# Unversioned keystone url in format like http://0.0.0.0:5000. (string value)
+#auth_uri =
+
 
 [clients_neutron]
 
@@ -615,10 +736,6 @@
 # If set, then the server's certificate will not be verified. (boolean value)
 #insecure = <None>
 
-#
-# From heat.common.config
-#
-
 # Allow client's debug log output. (boolean value)
 #http_log_debug = false
 
@@ -692,6 +809,62 @@
 #insecure = <None>
 
 
+[cors]
+
+#
+# From oslo.middleware
+#
+
+# Indicate whether this resource may be shared with the domain received in the
+# requests "origin" header. (list value)
+#allowed_origin = <None>
+
+# Indicate that the actual request can include user credentials (boolean value)
+#allow_credentials = true
+
+# Indicate which headers are safe to expose to the API. Defaults to HTTP Simple
+# Headers. (list value)
+#expose_headers = X-Auth-Token,X-Subject-Token,X-Service-Token,X-OpenStack-Request-ID
+
+# Maximum cache age of CORS preflight requests. (integer value)
+#max_age = 3600
+
+# Indicate which methods can be used during the actual request. (list value)
+#allow_methods = GET,PUT,POST,DELETE,PATCH
+
+# Indicate which header field names may be used during the actual request.
+# (list value)
+#allow_headers = X-Auth-Token,X-Identity-Status,X-Roles,X-Service-Catalog,X-User-Id,X-Tenant-Id,X-OpenStack-Request-ID
+
+
+[cors.subdomain]
+
+#
+# From oslo.middleware
+#
+
+# Indicate whether this resource may be shared with the domain received in the
+# requests "origin" header. (list value)
+#allowed_origin = <None>
+
+# Indicate that the actual request can include user credentials (boolean value)
+#allow_credentials = true
+
+# Indicate which headers are safe to expose to the API. Defaults to HTTP Simple
+# Headers. (list value)
+#expose_headers = X-Auth-Token,X-Subject-Token,X-Service-Token,X-OpenStack-Request-ID
+
+# Maximum cache age of CORS preflight requests. (integer value)
+#max_age = 3600
+
+# Indicate which methods can be used during the actual request. (list value)
+#allow_methods = GET,PUT,POST,DELETE,PATCH
+
+# Indicate which header field names may be used during the actual request.
+# (list value)
+#allow_headers = X-Auth-Token,X-Identity-Status,X-Roles,X-Service-Catalog,X-User-Id,X-Tenant-Id,X-OpenStack-Request-ID
+
+
 [database]
 
 #
@@ -727,12 +900,6 @@
 # (string value)
 #mysql_sql_mode = TRADITIONAL
 
-# This configures the MySQL storage engine. This allows for OpenStack to
-# support different storage engines such as InnoDB, NDB, etc. By Default,
-# this value will be set to InnoDB. For MySQL Cluster, set to NDBCLUSTER.
-# Example: mysql_storage_engine=(string value)
-#mysql_storage_engine = InnoDB
-
 # Timeout before idle SQL connections are reaped. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_idle_timeout
 # Deprecated group/name - [DATABASE]/sql_idle_timeout
@@ -763,7 +930,7 @@
 # If set, use this value for max_overflow with SQLAlchemy. (integer value)
 # Deprecated group/name - [DEFAULT]/sql_max_overflow
 # Deprecated group/name - [DATABASE]/sqlalchemy_max_overflow
-#max_overflow = <None>
+#max_overflow = 50
 
 # Verbosity of SQL debugging information: 0=None, 100=Everything. (integer
 # value)
@@ -849,11 +1016,13 @@
 #
 
 # Address to bind the server. Useful when selecting a particular network
-# interface. (string value)
+# interface. (IP address value)
 # Deprecated group/name - [DEFAULT]/bind_host
 #bind_host = 0.0.0.0
 
-# The port on which the server will listen. (integer value)
+# The port on which the server will listen. (port value)
+# Minimum value: 0
+# Maximum value: 65535
 # Deprecated group/name - [DEFAULT]/bind_port
 #bind_port = 8004
 
@@ -869,15 +1038,21 @@
 # Deprecated group/name - [DEFAULT]/key_file
 #key_file = <None>
 
-# Number of workers for Heat service. (integer value)
+# Number of workers for Heat service. Default value 0 means, that service will
+# start number of workers equal number of cores on server. (integer value)
 # Deprecated group/name - [DEFAULT]/workers
-#workers = 0
+workers = 1
 
 # Maximum line size of message headers to be accepted. max_header_line may need
 # to be increased when using large tokens (typically those generated by the
 # Keystone v3 API with big service catalogs). (integer value)
 #max_header_line = 16384
 
+# The value for the socket option TCP_KEEPIDLE.  This is the time in seconds
+# that the connection must be idle before TCP starts sending keepalive probes.
+# (integer value)
+#tcp_keepidle = 600
+
 
 [heat_api_cfn]
 
@@ -886,11 +1061,13 @@
 #
 
 # Address to bind the server. Useful when selecting a particular network
-# interface. (string value)
+# interface. (IP address value)
 # Deprecated group/name - [DEFAULT]/bind_host
 #bind_host = 0.0.0.0
 
-# The port on which the server will listen. (integer value)
+# The port on which the server will listen. (port value)
+# Minimum value: 0
+# Maximum value: 65535
 # Deprecated group/name - [DEFAULT]/bind_port
 #bind_port = 8000
 
@@ -908,13 +1085,18 @@
 
 # Number of workers for Heat service. (integer value)
 # Deprecated group/name - [DEFAULT]/workers
-#workers = 0
+#workers = 1
 
 # Maximum line size of message headers to be accepted. max_header_line may need
 # to be increased when using large tokens (typically those generated by the
 # Keystone v3 API with big service catalogs). (integer value)
 #max_header_line = 16384
 
+# The value for the socket option TCP_KEEPIDLE.  This is the time in seconds
+# that the connection must be idle before TCP starts sending keepalive probes.
+# (integer value)
+#tcp_keepidle = 600
+
 
 [heat_api_cloudwatch]
 
@@ -923,11 +1105,13 @@
 #
 
 # Address to bind the server. Useful when selecting a particular network
-# interface. (string value)
+# interface. (IP address value)
 # Deprecated group/name - [DEFAULT]/bind_host
 #bind_host = 0.0.0.0
 
-# The port on which the server will listen. (integer value)
+# The port on which the server will listen. (port value)
+# Minimum value: 0
+# Maximum value: 65535
 # Deprecated group/name - [DEFAULT]/bind_port
 #bind_port = 8003
 
@@ -945,13 +1129,18 @@
 
 # Number of workers for Heat service. (integer value)
 # Deprecated group/name - [DEFAULT]/workers
-#workers = 0
+#workers = 1
 
 # Maximum line size of message headers to be accepted. max_header_line may need
 # to be increased when using large tokens (typically those generated by the
 # Keystone v3 API with big service catalogs.) (integer value)
 #max_header_line = 16384
 
+# The value for the socket option TCP_KEEPIDLE.  This is the time in seconds
+# that the connection must be idle before TCP starts sending keepalive probes.
+# (integer value)
+#tcp_keepidle = 600
+
 
 [keystone_authtoken]
 
@@ -993,6 +1182,9 @@
 # Verify HTTPS connections. (boolean value)
 #insecure = false
 
+# The region in which the identity server can be found. (string value)
+#region_name = <None>
+
 # Directory used to cache files related to PKI tokens. (string value)
 signing_dir = /var/lib/heat/keystone-signing
 
@@ -1013,12 +1205,12 @@
 #revocation_cache_time = 10
 
 # (Optional) If defined, indicate whether token data should be authenticated or
-# authenticated and encrypted. Acceptable values are MAC or ENCRYPT.  If MAC,
-# token data is authenticated (with HMAC) in the cache. If ENCRYPT, token data
-# is encrypted and authenticated in the cache. If the value is not one of these
-# options or empty, auth_token will raise an exception on initialization.
-# (string value)
-#memcache_security_strategy = <None>
+# authenticated and encrypted. If MAC, token data is authenticated (with HMAC)
+# in the cache. If ENCRYPT, token data is encrypted and authenticated in the
+# cache. If the value is not one of these options or empty, auth_token will
+# raise an exception on initialization. (string value)
+# Allowed values: None, MAC, ENCRYPT
+#memcache_security_strategy = None
 
 # (Optional, mandatory if memcache_security_strategy is defined) This string is
 # used for key derivation. (string value)
@@ -1032,7 +1224,7 @@
 # server. (integer value)
 #memcache_pool_maxsize = 10
 
-# (Optional) Socket timeout in seconds for communicating with a memcache
+# (Optional) Socket timeout in seconds for communicating with a memcached
 # server. (integer value)
 #memcache_pool_socket_timeout = 3
 
@@ -1040,11 +1232,11 @@
 # pool before it is closed. (integer value)
 #memcache_pool_unused_timeout = 60
 
-# (Optional) Number of seconds that an operation will wait to get a memcache
+# (Optional) Number of seconds that an operation will wait to get a memcached
 # client connection from the pool. (integer value)
 #memcache_pool_conn_get_timeout = 10
 
-# (Optional) Use the advanced (eventlet safe) memcache client pool. The
+# (Optional) Use the advanced (eventlet safe) memcached client pool. The
 # advanced pool will only work under python 2.x. (boolean value)
 #memcache_use_advanced_pool = false
 
@@ -1076,33 +1268,17 @@
 # performance. (list value)
 #hash_algorithms = md5
 
-# Prefix to prepend at the beginning of the path. Deprecated, use identity_uri.
-# (string value)
-#auth_admin_prefix =
-
-# Host providing the admin Identity API endpoint. Deprecated, use identity_uri.
-# (string value)
-#auth_host = 127.0.0.1
+# Authentication type to load (unknown value)
+# Deprecated group/name - [DEFAULT]/auth_plugin
+#auth_type = <None>
 
-# Port of the admin Identity API endpoint. Deprecated, use identity_uri.
-# (integer value)
-#auth_port = 35357
-
-# Protocol of the admin Identity API endpoint (http or https). Deprecated, use
-# identity_uri. (string value)
-#auth_protocol = https
+# Config Section from which to load plugin specific options (unknown value)
+#auth_section = <None>
 
 # Complete admin Identity API endpoint. This should specify the unversioned
 # root endpoint e.g. https://localhost:35357/ (string value)
 identity_uri = http://127.0.0.1:35357/
 
-# This option is deprecated and may be removed in a future release. Single
-# shared secret with the Keystone configuration used for bootstrapping a
-# Keystone installation, or otherwise bypassing the normal authentication
-# process. This option should not be used, use `admin_user` and
-# `admin_password` instead. (string value)
-#admin_token = <None>
-
 # Service username. (string value)
 admin_user = %SERVICE_USER%
 
@@ -1112,12 +1288,6 @@
 # Service tenant name. (string value)
 admin_tenant_name = %SERVICE_TENANT_NAME%
 
-# Name of the plugin to load (string value)
-#auth_plugin = <None>
-
-# Config Section from which to load plugin specific options (string value)
-#auth_section = <None>
-
 
 [matchmaker_redis]
 
@@ -1128,22 +1298,47 @@
 # Host to locate redis. (string value)
 #host = 127.0.0.1
 
-# Use this port to connect to redis host. (integer value)
+# Use this port to connect to redis host. (port value)
+# Minimum value: 0
+# Maximum value: 65535
 #port = 6379
 
 # Password for Redis server (optional). (string value)
-#password = <None>
+#password =
+
+# List of Redis Sentinel hosts (fault tolerance mode) e.g.
+# [host:port, host1:port ... ] (list value)
+#sentinel_hosts =
+
+# Redis replica set name. (string value)
+#sentinel_group_name = oslo-messaging-zeromq
+
+# Time in ms to wait between connection attempts. (integer value)
+#wait_timeout = 500
+
+# Time in ms to wait before the transaction is killed. (integer value)
+#check_timeout = 20000
+
+# Timeout in ms on blocking socket operations (integer value)
+#socket_timeout = 1000
 
 
-[matchmaker_ring]
+[oslo_concurrency]
 
 #
-# From oslo.messaging
+# From oslo.concurrency
 #
 
-# Matchmaker ring file (JSON). (string value)
-# Deprecated group/name - [DEFAULT]/matchmaker_ringfile
-#ringfile = /etc/oslo/matchmaker_ring.json
+# Enables or disables inter-process locks. (boolean value)
+# Deprecated group/name - [DEFAULT]/disable_process_locking
+#disable_process_locking = false
+
+# Directory to use for lock files.  For security, the specified directory
+# should only be writable by the user running the processes that need locking.
+# Defaults to environment variable OSLO_LOCK_PATH. If external locks are used,
+# a lock path must be set. (string value)
+# Deprecated group/name - [DEFAULT]/lock_path
+lock_path = /var/lib/heat/lock
 
 
 [oslo_messaging_amqp]
@@ -1176,7 +1371,7 @@
 # Deprecated group/name - [amqp1]/trace
 #trace = false
 
-# CA certificate PEM file for verifing server certificate (string value)
+# CA certificate PEM file to verify server certificate (string value)
 # Deprecated group/name - [amqp1]/ssl_ca_file
 #ssl_ca_file =
 
@@ -1196,71 +1391,47 @@
 # Deprecated group/name - [amqp1]/allow_insecure_clients
 #allow_insecure_clients = false
 
+# Space separated list of acceptable SASL mechanisms (string value)
+# Deprecated group/name - [amqp1]/sasl_mechanisms
+#sasl_mechanisms =
 
-[oslo_messaging_qpid]
+# Path to directory that contains the SASL configuration (string value)
+# Deprecated group/name - [amqp1]/sasl_config_dir
+#sasl_config_dir =
+
+# Name of configuration file (without .conf suffix) (string value)
+# Deprecated group/name - [amqp1]/sasl_config_name
+#sasl_config_name =
+
+# User name for message broker authentication (string value)
+# Deprecated group/name - [amqp1]/username
+#username =
+
+# Password for message broker authentication (string value)
+# Deprecated group/name - [amqp1]/password
+#password =
+
+
+[oslo_messaging_notifications]
 
 #
 # From oslo.messaging
 #
 
-# Use durable queues in AMQP. (boolean value)
-# Deprecated group/name - [DEFAULT]/rabbit_durable_queues
-#amqp_durable_queues = false
-
-# Auto-delete queues in AMQP. (boolean value)
-# Deprecated group/name - [DEFAULT]/amqp_auto_delete
-#amqp_auto_delete = false
-
-# Size of RPC connection pool. (integer value)
-# Deprecated group/name - [DEFAULT]/rpc_conn_pool_size
-#rpc_conn_pool_size = 30
-
-# Qpid broker hostname. (string value)
-# Deprecated group/name - [DEFAULT]/qpid_hostname
-#qpid_hostname = localhost
-
-# Qpid broker port. (integer value)
-# Deprecated group/name - [DEFAULT]/qpid_port
-#qpid_port = 5672
-
-# Qpid HA cluster host:port pairs. (list value)
-# Deprecated group/name - [DEFAULT]/qpid_hosts
-#qpid_hosts = $qpid_hostname:$qpid_port
-
-# Username for Qpid connection. (string value)
-# Deprecated group/name - [DEFAULT]/qpid_username
-#qpid_username =
+# The Drivers(s) to handle sending notifications. Possible values are
+# messaging, messagingv2, routing, log, test, noop (multi valued)
+# Deprecated group/name - [DEFAULT]/notification_driver
+#driver =
 
-# Password for Qpid connection. (string value)
-# Deprecated group/name - [DEFAULT]/qpid_password
-#qpid_password =
-
-# Space separated list of SASL mechanisms to use for auth. (string value)
-# Deprecated group/name - [DEFAULT]/qpid_sasl_mechanisms
-#qpid_sasl_mechanisms =
-
-# Seconds between connection keepalive heartbeats. (integer value)
-# Deprecated group/name - [DEFAULT]/qpid_heartbeat
-#qpid_heartbeat = 60
+# A URL representing the messaging driver to use for notifications. If not set,
+# we fall back to the same configuration used for RPC. (string value)
+# Deprecated group/name - [DEFAULT]/notification_transport_url
+#transport_url = <None>
 
-# Transport to use, either 'tcp' or 'ssl'. (string value)
-# Deprecated group/name - [DEFAULT]/qpid_protocol
-#qpid_protocol = tcp
-
-# Whether to disable the Nagle algorithm. (boolean value)
-# Deprecated group/name - [DEFAULT]/qpid_tcp_nodelay
-#qpid_tcp_nodelay = true
-
-# The number of prefetched messages held by receiver. (integer value)
-# Deprecated group/name - [DEFAULT]/qpid_receiver_capacity
-#qpid_receiver_capacity = 1
-
-# The qpid topology version to use.  Version 1 is what was originally used by
-# impl_qpid.  Version 2 includes some backwards-incompatible changes that allow
-# broker federation to work.  Users should update to version 2 when they are
-# able to take everything down, as it requires a clean break. (integer value)
-# Deprecated group/name - [DEFAULT]/qpid_topology_version
-#qpid_topology_version = 1
+# AMQP topic used for OpenStack notifications. (list value)
+# Deprecated group/name - [rpc_notifier2]/topics
+# Deprecated group/name - [DEFAULT]/notification_topics
+#topics = notifications
 
 
 [oslo_messaging_rabbit]
@@ -1270,6 +1441,7 @@
 #
 
 # Use durable queues in AMQP. (boolean value)
+# Deprecated group/name - [DEFAULT]/amqp_durable_queues
 # Deprecated group/name - [DEFAULT]/rabbit_durable_queues
 #amqp_durable_queues = false
 
@@ -1277,10 +1449,6 @@
 # Deprecated group/name - [DEFAULT]/amqp_auto_delete
 #amqp_auto_delete = false
 
-# Size of RPC connection pool. (integer value)
-# Deprecated group/name - [DEFAULT]/rpc_conn_pool_size
-#rpc_conn_pool_size = 30
-
 # SSL version to use (valid only if SSL enabled). Valid values are TLSv1 and
 # SSLv23. SSLv2, SSLv3, TLSv1_1, and TLSv1_2 may be available on some
 # distributions. (string value)
@@ -1304,11 +1472,28 @@
 # Deprecated group/name - [DEFAULT]/kombu_reconnect_delay
 #kombu_reconnect_delay = 1.0
 
+# EXPERIMENTAL: Possible values are: gzip, bz2. If not set compression will not
+# be used. This option may notbe available in future versions. (string value)
+#kombu_compression = <None>
+
+# How long to wait a missing client beforce abandoning to send it its replies.
+# This value should not be longer than rpc_response_timeout. (integer value)
+# Deprecated group/name - [DEFAULT]/kombu_reconnect_timeout
+#kombu_missing_consumer_retry_timeout = 60
+
+# Determines how the next RabbitMQ node is chosen in case the one we are
+# currently connected to becomes unavailable. Takes effect only if more than
+# one RabbitMQ node is provided in config. (string value)
+# Allowed values: round-robin, shuffle
+#kombu_failover_strategy = round-robin
+
 # The RabbitMQ broker address where a single node is used. (string value)
 # Deprecated group/name - [DEFAULT]/rabbit_host
 #rabbit_host = localhost
 
-# The RabbitMQ broker port where a single node is used. (integer value)
+# The RabbitMQ broker port where a single node is used. (port value)
+# Minimum value: 0
+# Maximum value: 65535
 # Deprecated group/name - [DEFAULT]/rabbit_port
 #rabbit_port = 5672
 
@@ -1344,21 +1529,38 @@
 # Deprecated group/name - [DEFAULT]/rabbit_retry_backoff
 #rabbit_retry_backoff = 2
 
+# Maximum interval of RabbitMQ connection retries. Default is 30 seconds.
+# (integer value)
+#rabbit_interval_max = 30
+
 # Maximum number of RabbitMQ connection retries. Default is 0 (infinite retry
 # count). (integer value)
 # Deprecated group/name - [DEFAULT]/rabbit_max_retries
 #rabbit_max_retries = 0
 
-# Use HA queues in RabbitMQ (x-ha-policy: all). If you change this option, you
-# must wipe the RabbitMQ database. (boolean value)
+# Try to use HA queues in RabbitMQ (x-ha-policy: all). If you change this
+# option, you must wipe the RabbitMQ database. In RabbitMQ 3.0, queue mirroring
+# is no longer controlled by the x-ha-policy argument when declaring a queue.
+# If you just want to make sure that all queues (except  those with auto-
+# generated names) are mirrored across all nodes, run: "rabbitmqctl set_policy
+# HA '^(?!amq\.).*' '{"ha-mode": "all"}' " (boolean value)
 # Deprecated group/name - [DEFAULT]/rabbit_ha_queues
 #rabbit_ha_queues = false
 
+# Positive integer representing duration in seconds for queue TTL (x-expires).
+# Queues which are unused for the duration of the TTL are automatically
+# deleted. The parameter affects only reply and fanout queues. (integer value)
+# Minimum value: 1
+#rabbit_transient_queues_ttl = 1800
+
+# Specifies the number of messages to prefetch. Setting to zero allows
+# unlimited messages. (integer value)
+#rabbit_qos_prefetch_count = 0
+
 # Number of seconds after which the Rabbit broker is considered down if
-# heartbeat's keep-alive fails (0 disables the heartbeat, >0 enables it.
-# Enabling heartbeats requires kombu>=3.0.7 and amqp>=1.4.0). EXPERIMENTAL
-# (integer value)
-#heartbeat_timeout_threshold = 0
+# heartbeat's keep-alive fails (0 disable the heartbeat). EXPERIMENTAL (integer
+# value)
+#heartbeat_timeout_threshold = 60
 
 # How often times during the heartbeat_timeout_threshold we check the
 # heartbeat. (integer value)
@@ -1368,6 +1570,104 @@
 # Deprecated group/name - [DEFAULT]/fake_rabbit
 #fake_rabbit = false
 
+# Maximum number of channels to allow (integer value)
+#channel_max = <None>
+
+# The maximum byte size for an AMQP frame (integer value)
+#frame_max = <None>
+
+# How often to send heartbeats for consumer's connections (integer value)
+#heartbeat_interval = 1
+
+# Enable SSL (boolean value)
+#ssl = <None>
+
+# Arguments passed to ssl.wrap_socket (dict value)
+#ssl_options = <None>
+
+# Set socket timeout in seconds for connection's socket (floating point value)
+#socket_timeout = 0.25
+
+# Set TCP_USER_TIMEOUT in seconds for connection's socket (floating point
+# value)
+#tcp_user_timeout = 0.25
+
+# Set delay for reconnection to some host which has connection error (floating
+# point value)
+#host_connection_reconnect_delay = 0.25
+
+# Maximum number of connections to keep queued. (integer value)
+#pool_max_size = 10
+
+# Maximum number of connections to create above `pool_max_size`. (integer
+# value)
+#pool_max_overflow = 0
+
+# Default number of seconds to wait for a connections to available (integer
+# value)
+#pool_timeout = 30
+
+# Lifetime of a connection (since creation) in seconds or None for no
+# recycling. Expired connections are closed on acquire. (integer value)
+#pool_recycle = 600
+
+# Threshold at which inactive (since release) connections are considered stale
+# in seconds or None for no staleness. Stale connections are closed on acquire.
+# (integer value)
+#pool_stale = 60
+
+# Persist notification messages. (boolean value)
+#notification_persistence = false
+
+# Exchange name for for sending notifications (string value)
+#default_notification_exchange = ${control_exchange}_notification
+
+# Max number of not acknowledged message which RabbitMQ can send to
+# notification listener. (integer value)
+#notification_listener_prefetch_count = 100
+
+# Reconnecting retry count in case of connectivity problem during sending
+# notification, -1 means infinite retry. (integer value)
+#default_notification_retry_attempts = -1
+
+# Reconnecting retry delay in case of connectivity problem during sending
+# notification message (floating point value)
+#notification_retry_delay = 0.25
+
+# Time to live for rpc queues without consumers in seconds. (integer value)
+#rpc_queue_expiration = 60
+
+# Exchange name for sending RPC messages (string value)
+#default_rpc_exchange = ${control_exchange}_rpc
+
+# Exchange name for receiving RPC replies (string value)
+#rpc_reply_exchange = ${control_exchange}_rpc_reply
+
+# Max number of not acknowledged message which RabbitMQ can send to rpc
+# listener. (integer value)
+#rpc_listener_prefetch_count = 100
+
+# Max number of not acknowledged message which RabbitMQ can send to rpc reply
+# listener. (integer value)
+#rpc_reply_listener_prefetch_count = 100
+
+# Reconnecting retry count in case of connectivity problem during sending
+# reply. -1 means infinite retry during rpc_timeout (integer value)
+#rpc_reply_retry_attempts = -1
+
+# Reconnecting retry delay in case of connectivity problem during sending
+# reply. (floating point value)
+#rpc_reply_retry_delay = 0.25
+
+# Reconnecting retry count in case of connectivity problem during sending RPC
+# message, -1 means infinite retry. If actual retry attempts in not 0 the rpc
+# request could be processed more then one time (integer value)
+#default_rpc_retry_attempts = -1
+
+# Reconnecting retry delay in case of connectivity problem during sending RPC
+# message (floating point value)
+#rpc_retry_delay = 0.25
+
 
 [oslo_middleware]
 
@@ -1380,6 +1680,56 @@
 # Deprecated group/name - [DEFAULT]/max_request_body_size
 #max_request_body_size = 114688
 
+# The HTTP Header that will be used to determine what the original request
+# protocol scheme was, even if it was hidden by an SSL termination proxy.
+# (string value)
+# This option is deprecated for removal.
+# Its value may be silently ignored in the future.
+#secure_proxy_ssl_header = X-Forwarded-Proto
+
+
+[oslo_policy]
+
+#
+# From oslo.policy
+#
+
+# The JSON file that defines policies. (string value)
+# Deprecated group/name - [DEFAULT]/policy_file
+#policy_file = policy.json
+
+# Default rule. Enforced when a requested rule is not found. (string value)
+# Deprecated group/name - [DEFAULT]/policy_default_rule
+#policy_default_rule = default
+
+# Directories where policy configuration files are stored. They can be relative
+# to any directory in the search path defined by the config_dir option, or
+# absolute paths. The file defined by policy_file must exist for these
+# directories to be searched.  Missing or empty directories are ignored. (multi
+# valued)
+# Deprecated group/name - [DEFAULT]/policy_dirs
+#policy_dirs = policy.d
+
+
+[oslo_reports]
+
+#
+# From oslo.reports
+#
+
+# Path to a log directory where to create a file (string value)
+#log_dir = <None>
+
+
+[oslo_versionedobjects]
+
+#
+# From oslo.versionedobjects
+#
+
+# Make exception message format errors fatal (boolean value)
+#fatal_exception_format_errors = false
+
 
 [paste_deploy]
 
@@ -1400,12 +1750,52 @@
 # From heat.common.config
 #
 
-# If False fully disable profiling feature. (boolean value)
-#profiler_enabled = false
+#
+# Enables the profiling for all services on this node. Default value is False
+# (fully disable the profiling feature).
+#
+# Possible values:
+#
+# * True: Enables the feature
+# * False: Disables the feature. The profiling cannot be started via this
+# project
+# operations. If the profiling is triggered by another project, this project
+# part
+# will be empty.
+#  (boolean value)
+# Deprecated group/name - [profiler]/profiler_enabled
+#enabled = false
 
-# If False do not trace SQL requests. (boolean value)
+#
+# Enables SQL requests profiling in services. Default value is False (SQL
+# requests won't be traced).
+#
+# Possible values:
+#
+# * True: Enables SQL requests profiling. Each SQL query will be part of the
+# trace and can the be analyzed by how much time was spent for that.
+# * False: Disables SQL requests profiling. The spent time is only shown on a
+# higher level of operations. Single SQL queries cannot be analyzed this
+# way.
+#  (boolean value)
 #trace_sqlalchemy = false
 
+#
+# Secret key(s) to use for encrypting context data for performance profiling.
+# This string value should have the following format:
+# <key1>[,<key2>,...<keyn>],
+# where each key is some random string. A user who triggers the profiling via
+# the REST API has to set one of these keys in the headers of the REST API call
+# to include profiling results of this node for this particular project.
+#
+# Both "enabled" flag and "hmac_keys" config options should be set to enable
+# profiling. Also, to generate correct profiling information across all
+# services
+# at least one key needs to be consistent between OpenStack projects. This
+# ensures it can be used from client side to generate the trace, containing
+# information from all possible resources. (string value)
+#hmac_keys = SECRET_KEY
+
 
 [revision]
 
@@ -1417,3 +1807,84 @@
 # separately, you can move this section to a different file and add it as
 # another config option. (string value)
 #heat_revision = unknown
+
+
+[ssl]
+
+#
+# From oslo.service.sslutils
+#
+
+# CA certificate file to use to verify connecting clients. (string value)
+# Deprecated group/name - [DEFAULT]/ssl_ca_file
+#ca_file = <None>
+
+# Certificate file to use when starting the server securely. (string value)
+# Deprecated group/name - [DEFAULT]/ssl_cert_file
+#cert_file = <None>
+
+# Private key file to use when starting the server securely. (string value)
+# Deprecated group/name - [DEFAULT]/ssl_key_file
+#key_file = <None>
+
+# SSL version to use (valid only if SSL enabled). Valid values are TLSv1 and
+# SSLv23. SSLv2, SSLv3, TLSv1_1, and TLSv1_2 may be available on some
+# distributions. (string value)
+#version = <None>
+
+# Sets the list of available ciphers. value should be a string in the OpenSSL
+# cipher list format. (string value)
+#ciphers = <None>
+
+
+[trustee]
+
+#
+# From heat.common.context
+#
+
+# Name of the plugin to load (string value)
+#auth_plugin = <None>
+
+# Config Section from which to load plugin specific options (string value)
+#auth_section = <None>
+
+# Authentication URL (string value)
+#auth_url = <None>
+
+# Domain ID to scope to (string value)
+#domain_id = <None>
+
+# Domain name to scope to (string value)
+#domain_name = <None>
+
+# Project ID to scope to (string value)
+#project_id = <None>
+
+# Project name to scope to (string value)
+#project_name = <None>
+
+# Domain ID containing project (string value)
+#project_domain_id = <None>
+
+# Domain name containing project (string value)
+#project_domain_name = <None>
+
+# Trust ID (string value)
+#trust_id = <None>
+
+# User ID (string value)
+#user_id = <None>
+
+# Username (string value)
+# Deprecated group/name - [DEFAULT]/user_name
+#username = <None>
+
+# User's domain id (string value)
+#user_domain_id = <None>
+
+# User's domain name (string value)
+#user_domain_name = <None>
+
+# User's password (string value)
+#password = <None>
--- a/components/openstack/heat/heat.license	Wed Sep 07 14:48:41 2016 -0700
+++ b/components/openstack/heat/heat.license	Wed Sep 07 14:48:41 2016 -0700
@@ -8,7 +8,7 @@
 
 See the License for the specific language governing permissions and limitations under the License.
 
-		                   Apache License
+                                 Apache License
                            Version 2.0, January 2004
                         http://www.apache.org/licenses/
 
@@ -182,30 +182,3 @@
       defend, and hold each Contributor harmless for any liability
       incurred by, or claims asserted against, such Contributor by reason
       of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--- a/components/openstack/heat/heat.p5m	Wed Sep 07 14:48:41 2016 -0700
+++ b/components/openstack/heat/heat.p5m	Wed Sep 07 14:48:41 2016 -0700
@@ -28,7 +28,7 @@
 set name=pkg.summary value="OpenStack Heat (Orchestration Service)"
 set name=pkg.description \
     value="OpenStack Heat is a service to orchestrate multiple composite cloud applications using templates, through both an OpenStack-native ReST API and a CloudFormation-compatible Query API."
-set name=pkg.human-version value="Kilo $(COMPONENT_VERSION)"
+set name=pkg.human-version value="Mitaka $(COMPONENT_VERSION)"
 set name=com.oracle.info.description \
     value="Heat, the OpenStack orchestration service"
 set name=com.oracle.info.tpno value=$(TPNO)
@@ -42,7 +42,7 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=openstack.upgrade-id reboot-needed=true value=$(COMPONENT_BE_VERSION)
 set name=org.opensolaris.arc-caseid value=PSARC/2013/350 value=PSARC/2014/236 \
-    value=PSARC/2015/110 value=PSARC/2015/535
+    value=PSARC/2015/110 value=PSARC/2015/535 value=PSARC/2016/455
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 #
 dir  path=etc/heat owner=heat group=heat mode=0700
@@ -74,14 +74,14 @@
 file files/heat-smf-method path=lib/svc/method/heat-smf-method
 file files/heat-upgrade path=lib/svc/method/heat-upgrade
 file path=usr/bin/heat-manage
-file usr/bin/heat-api path=usr/lib/heat/heat-api mode=0555 \
-    pkg.depend.bypass-generate=.*/oslo_log.*
-file usr/bin/heat-api-cfn path=usr/lib/heat/heat-api-cfn mode=0555 \
-    pkg.depend.bypass-generate=.*/oslo_log.*
-file usr/bin/heat-api-cloudwatch path=usr/lib/heat/heat-api-cloudwatch \
-    mode=0555 pkg.depend.bypass-generate=.*/oslo_log.*
-file usr/bin/heat-engine path=usr/lib/heat/heat-engine mode=0555 \
-    pkg.depend.bypass-generate=.*/oslo_log.*
+file usr/bin/heat-api path=usr/lib/heat/heat-api mode=0555
+file usr/bin/heat-api-cfn path=usr/lib/heat/heat-api-cfn mode=0555
+file usr/bin/heat-api-cloudwatch path=usr/lib/heat/heat-api-cloudwatch mode=0555
+file usr/bin/heat-engine path=usr/lib/heat/heat-engine mode=0555
+file usr/bin/heat-wsgi-api path=usr/lib/heat/heat-wsgi-api mode=0555
+file usr/bin/heat-wsgi-api-cfn path=usr/lib/heat/heat-wsgi-api-cfn mode=0555
+file usr/bin/heat-wsgi-api-cloudwatch \
+    path=usr/lib/heat/heat-wsgi-api-cloudwatch mode=0555
 file path=usr/lib/python$(PYVER)/vendor-packages/heat-$(COMPONENT_VERSION)-py$(PYVER).egg-info/PKG-INFO
 file path=usr/lib/python$(PYVER)/vendor-packages/heat-$(COMPONENT_VERSION)-py$(PYVER).egg-info/SOURCES.txt
 file path=usr/lib/python$(PYVER)/vendor-packages/heat-$(COMPONENT_VERSION)-py$(PYVER).egg-info/dependency_links.txt
@@ -102,7 +102,6 @@
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/api/cfn/v1/stacks.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/api/cfn/versions.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/api/cloudwatch/__init__.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/api/cloudwatch/versions.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/api/cloudwatch/watch.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/api/middleware/__init__.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/api/middleware/fault.py
@@ -123,20 +122,35 @@
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/api/openstack/v1/views/stacks_view.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/api/openstack/v1/views/views_common.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/api/openstack/versions.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/api/versions.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/cloudinit/__init__.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/cloudinit/boothook.sh
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/cloudinit/config
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/cloudinit/loguserdata.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/cloudinit/part_handler.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/cmd/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/cmd/api.py \
+    pkg.depend.bypass-generate=.*/oslo_reports.* \
+    pkg.depend.bypass-generate=.*/oslo_service.*
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/cmd/api_cfn.py \
+    pkg.depend.bypass-generate=.*/oslo_reports.* \
+    pkg.depend.bypass-generate=.*/oslo_service.*
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/cmd/api_cloudwatch.py \
+    pkg.depend.bypass-generate=.*/oslo_reports.* \
+    pkg.depend.bypass-generate=.*/oslo_service.*
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/cmd/engine.py \
+    pkg.depend.bypass-generate=.*/oslo_reports.* \
+    pkg.depend.bypass-generate=.*/oslo_service.*
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/cmd/manage.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/common/__init__.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/common/auth_password.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/common/auth_url.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/common/cache.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/common/config.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/common/context.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/common/crypt.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/common/custom_backend_auth.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/common/endpoint_utils.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/common/environment_format.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/common/exception.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/common/grouputils.py
@@ -145,6 +159,7 @@
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/common/identifier.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/common/lifecycle_plugin_utils.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/common/messaging.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/common/netutils.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/common/param_utils.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/common/plugin_loader.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/common/policy.py
@@ -165,20 +180,7 @@
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/__init__.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/manage.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/migrate.cfg
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/015_grizzly.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/016_timeout_nullable.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/017_event_state_status.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/018_resource_id_uuid.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/019_resource_action_status.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/020_stack_action.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/021_resource_data.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/022_stack_event_soft_delete.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/023_raw_template_mysql_longtext.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/024_event_resource_name.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/025_user_creds_drop_service.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/026_user_creds_drop_aws.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/027_user_creds_trusts.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/028_text_mysql_longtext.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/028_havana.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/029_event_id_to_uuid.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/030_remove_uuidutils.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/031_stack_lock.py
@@ -213,6 +215,15 @@
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/060_resource_convg_data.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/061_status_reason_longtext.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/062_parent_resource.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/063_properties_data_encrypted.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/064_raw_template_predecessor.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/065_root_resource.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/066_placeholder.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/067_placeholder.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/068_placeholder.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/069_placeholder.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/070_placeholder.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/071_stack_owner_id_index.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migrate_repo/versions/__init__.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/migration.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/db/sqlalchemy/models.py
@@ -228,16 +239,29 @@
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/clients/__init__.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/clients/client_plugin.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/clients/os/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/clients/os/barbican.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/clients/os/ceilometer.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/clients/os/cinder.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/clients/os/designate.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/clients/os/glance.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/clients/os/heat_plugin.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/clients/os/keystone.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/clients/os/neutron.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/clients/os/magnum.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/clients/os/manila.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/clients/os/mistral.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/clients/os/monasca.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/clients/os/neutron/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/clients/os/neutron/lbaas_constraints.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/clients/os/neutron/neutron_constraints.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/clients/os/nova.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/clients/os/sahara.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/clients/os/senlin.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/clients/os/swift.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/clients/os/trove.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/clients/os/zaqar.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/clients/progress.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/constraint/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/constraint/common_constraints.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/constraints.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/dependencies.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/environment.py
@@ -247,15 +271,12 @@
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/hot/functions.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/hot/parameters.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/hot/template.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/iso_8601.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/lifecycle_plugin.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/notification/__init__.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/notification/autoscaling.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/notification/stack.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/nova_utils.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/parameter_groups.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/parameters.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/parser.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/plugin_manager.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/properties.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resource.py
@@ -286,12 +307,23 @@
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/aws/s3/__init__.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/aws/s3/s3.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/barbican/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/barbican/container.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/barbican/order.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/barbican/secret.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/ceilometer/__init__.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/ceilometer/alarm.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/ceilometer/gnocchi/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/ceilometer/gnocchi/alarm.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/cinder/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/cinder/encrypted_volume_type.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/cinder/volume.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/cinder/volume_type.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/designate/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/designate/domain.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/designate/record.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/glance/__init__.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/glance/glance_image.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/glance/image.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/heat/__init__.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/heat/access_policy.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/heat/autoscaling_group.py
@@ -300,8 +332,10 @@
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/heat/ha_restarter.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/heat/instance_group.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/heat/multi_part.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/heat/none_resource.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/heat/random_string.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/heat/remote_stack.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/heat/resource_chain.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/heat/resource_group.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/heat/scaling_policy.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/heat/software_component.py
@@ -309,11 +343,43 @@
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/heat/software_deployment.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/heat/structured_config.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/heat/swiftsignal.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/heat/test_resource.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/heat/wait_condition.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/heat/wait_condition_handle.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/keystone/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/keystone/endpoint.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/keystone/group.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/keystone/project.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/keystone/region.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/keystone/role.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/keystone/role_assignments.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/keystone/service.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/keystone/user.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/magnum/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/magnum/bay.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/magnum/baymodel.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/manila/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/manila/security_service.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/manila/share.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/manila/share_network.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/manila/share_type.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/mistral/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/mistral/cron_trigger.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/mistral/workflow.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/monasca/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/monasca/alarm_definition.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/monasca/notification.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/neutron/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/neutron/address_scope.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/neutron/extraroute.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/neutron/firewall.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/neutron/floatingip.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/neutron/lbaas/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/neutron/lbaas/health_monitor.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/neutron/lbaas/listener.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/neutron/lbaas/loadbalancer.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/neutron/lbaas/pool.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/neutron/lbaas/pool_member.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/neutron/loadbalancer.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/neutron/metering.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/neutron/net.py
@@ -321,28 +387,46 @@
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/neutron/neutron.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/neutron/port.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/neutron/provider_net.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/neutron/qos.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/neutron/rbac_policy.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/neutron/router.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/neutron/security_group.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/neutron/subnet.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/neutron/subnetpool.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/neutron/vpnservice.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/nova/__init__.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/nova/nova_floatingip.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/nova/nova_keypair.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/nova/nova_servergroup.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/nova/flavor.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/nova/floatingip.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/nova/host_aggregate.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/nova/keypair.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/nova/server.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/nova/server_group.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/nova/server_network_mixin.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/sahara/__init__.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/sahara/sahara_cluster.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/sahara/sahara_templates.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/sahara/cluster.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/sahara/data_source.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/sahara/image.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/sahara/job_binary.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/sahara/templates.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/senlin/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/senlin/cluster.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/senlin/node.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/senlin/policy.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/senlin/profile.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/senlin/receiver.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/swift/__init__.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/swift/swift.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/trove/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/trove/cluster.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/trove/os_database.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/trove/trove_cluster.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/zaqar/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/openstack/zaqar/queue.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/scheduler_hints.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/signal_responder.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/stack_resource.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/stack_user.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/template_resource.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/volume_base.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/resources/wait_condition.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/rsrc_defn.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/scheduler.py
@@ -352,13 +436,19 @@
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/stack.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/stack_lock.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/support.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/sync_point.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/template.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/timestamp.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/translation.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/update.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/volume_tasks.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/watchrule.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/engine/worker.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/httpd/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/httpd/heat_api.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/httpd/heat_api_cfn.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/httpd/heat_api_cloudwatch.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/objects/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/objects/base.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/objects/event.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/objects/fields.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/objects/raw_template.py
@@ -381,24 +471,17 @@
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/openstack/common/_i18n.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/openstack/common/crypto/__init__.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/openstack/common/crypto/utils.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/openstack/common/eventlet_backdoor.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/openstack/common/fileutils.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/openstack/common/loopingcall.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/openstack/common/middleware/__init__.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/openstack/common/middleware/request_id.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/openstack/common/policy.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/openstack/common/service.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/openstack/common/systemd.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/openstack/common/threadgroup.py
-file path=usr/lib/python$(PYVER)/vendor-packages/heat/openstack/common/versionutils.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/rpc/__init__.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/rpc/api.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/rpc/client.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/rpc/listener_client.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/rpc/worker_api.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/rpc/worker_client.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/scaling/__init__.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/scaling/cooldown.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/scaling/lbutils.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/scaling/rolling_update.py
+file path=usr/lib/python$(PYVER)/vendor-packages/heat/scaling/scalingutil.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/scaling/template.py
 file path=usr/lib/python$(PYVER)/vendor-packages/heat/version.py
 dir  path=var/lib/heat owner=heat group=heat mode=0700
@@ -409,8 +492,13 @@
 #
 license heat.license license="Apache v2.0"
 
-# To upgrade to Kilo version, Juno version of the package must be on the system
-depend type=origin fmri=cloud/openstack/[email protected] root-image=true
+# To upgrade to Mitaka version, Kilo version of the package must be on the
+# system
+depend type=origin fmri=cloud/openstack/[email protected] root-image=true
+
+# force a dependency on barbicanclient; pkgdepend work is needed to flush this
+# out.
+depend type=require fmri=library/python/barbicanclient-$(PYV)
 
 # force a dependency on ceilometerclient; pkgdepend work is needed to flush this
 # out.
@@ -420,19 +508,28 @@
 # out.
 depend type=require fmri=library/python/cinderclient-$(PYV)
 
+# force a dependency on croniter; pkgdepend work is needed to flush this out.
+depend type=require fmri=library/python/croniter-$(PYV)
+
+# force a dependency on cryptography; pkgdepend work is needed to flush this
+# out.
+depend type=require fmri=library/python/cryptography-$(PYV)
+
+# force a dependency on debtcollector; pkgdepend work is needed to flush this
+# out.
+depend type=require fmri=library/python/debtcollector-$(PYV)
+
+# force a dependency on designateclient; pkgdepend work is needed to flush this
+# out.
+depend type=require fmri=library/python/designateclient-$(PYV)
+
 # force a dependency on glanceclient; pkgdepend work is needed to flush this
 # out.
 depend type=require fmri=library/python/glanceclient-$(PYV)
 
-# force a dependency on greenlet; pkgdepend work is needed to flush this out.
-depend type=require fmri=library/python/greenlet-$(PYV)
-
 # force a dependency on heatclient; pkgdepend work is needed to flush this out.
 depend type=require fmri=library/python/heatclient-$(PYV)
 
-# force a dependency on iso8601; pkgdepend work is needed to flush this out.
-depend type=require fmri=library/python/iso8601-$(PYV)
-
 # force a dependency on keystoneclient; pkgdepend work is needed to flush this
 # out.
 depend type=require fmri=library/python/keystoneclient-$(PYV)
@@ -446,6 +543,21 @@
 # force a dependency on m2crypto; pkgdepend work is needed to flush this out.
 depend type=require fmri=library/python/m2crypto-$(PYV)
 
+# force a dependency on magnumclient; pkgdepend work is needed to flush this
+# out.
+depend type=require fmri=library/python/magnumclient-$(PYV)
+
+# force a dependency on manilaclient; pkgdepend work is needed to flush this
+# out.
+depend type=require fmri=library/python/manilaclient-$(PYV)
+
+# force a dependency on mistralclient; pkgdepend work is needed to flush this
+# out.
+depend type=require fmri=library/python/mistralclient-$(PYV)
+
+# force a dependency on netaddr; pkgdepend work is needed to flush this out.
+depend type=require fmri=library/python/netaddr-$(PYV)
+
 # force a dependency on neutronclient; pkgdepend work is needed to flush this
 # out.
 depend type=require fmri=library/python/neutronclient-$(PYV)
@@ -453,9 +565,8 @@
 # force a dependency on novaclient; pkgdepend work is needed to flush this out.
 depend type=require fmri=library/python/novaclient-$(PYV)
 
-# force a dependency on oslo.concurrency; pkgdepend work is needed to flush this
-# out.
-depend type=require fmri=library/python/oslo.concurrency-$(PYV)
+# force a dependency on oslo.cache; pkgdepend work is needed to flush this out.
+depend type=require fmri=library/python/oslo.cache-$(PYV)
 
 # force a dependency on oslo.context; pkgdepend work is needed to flush this
 # out.
@@ -464,9 +575,6 @@
 # force a dependency on oslo.db; pkgdepend work is needed to flush this out.
 depend type=require fmri=library/python/oslo.db-$(PYV)
 
-# force a dependency on oslo.log; pkgdepend work is needed to flush this out.
-depend type=require fmri=library/python/oslo.log-$(PYV)
-
 # force a dependency on oslo.messaging; pkgdepend work is needed to flush this
 # out.
 depend type=require fmri=library/python/oslo.messaging-$(PYV)
@@ -475,10 +583,21 @@
 # out.
 depend type=require fmri=library/python/oslo.middleware-$(PYV)
 
+# force a dependency on oslo.policy; pkgdepend work is needed to flush this out.
+depend type=require fmri=library/python/oslo.policy-$(PYV)
+
+# force a dependency on oslo.reports; pkgdepend work is needed to flush this
+# out.
+depend type=require fmri=library/python/oslo.reports-$(PYV)
+
 # force a dependency on oslo.serialization; pkgdepend work is needed to flush
 # this out.
 depend type=require fmri=library/python/oslo.serialization-$(PYV)
 
+# force a dependency on oslo.service; pkgdepend work is needed to flush this
+# out.
+depend type=require fmri=library/python/oslo.service-$(PYV)
+
 # force a dependency on oslo.utils; pkgdepend work is needed to flush this out.
 depend type=require fmri=library/python/oslo.utils-$(PYV)
 
@@ -486,7 +605,7 @@
 # this out.
 depend type=require fmri=library/python/oslo.versionedobjects-$(PYV)
 
-# force a dependency on osprofiler; pkgdepend work is needed to flush this out.
+# force a dependency on osprofiler; pkgdepend work is needed to flush this
 depend type=require fmri=library/python/osprofiler-$(PYV)
 
 # force a dependency on paste.deploy; pkgdepend work is needed to flush this
@@ -496,12 +615,18 @@
 # force a dependency on pbr; pkgdepend work is needed to flush this out.
 depend type=require fmri=library/python/pbr-$(PYV)
 
+# force a dependency on pytz; pkgdepend work is needed to flush this out.
+depend type=require fmri=library/python/pytz-$(PYV)
+
 # force a dependency on pyyaml; pkgdepend work is needed to flush this out.
 depend type=require fmri=library/python/pyyaml-$(PYV)
 
 # force a dependency on requests; pkgdepend work is needed to flush this out.
 depend type=require fmri=library/python/requests-$(PYV)
 
+# force a dependency on retrying; pkgdepend work is needed to flush this out.
+depend type=require fmri=library/python/retrying-$(PYV)
+
 # force a dependency on routes; pkgdepend work is needed to flush this out.
 depend type=require fmri=library/python/routes-$(PYV)
 
@@ -509,6 +634,10 @@
 # out.
 depend type=require fmri=library/python/saharaclient-$(PYV)
 
+# force a dependency on senlinclient; pkgdepend work is needed to flush this
+# out.
+depend type=require fmri=library/python/senlinclient-$(PYV)
+
 # force a dependency on stevedore; pkgdepend work is needed to flush this out.
 depend type=require fmri=library/python/stevedore-$(PYV)
 
@@ -520,3 +649,6 @@
 
 # force a dependency on webob; pkgdepend work is needed to flush this out.
 depend type=require fmri=library/python/webob-$(PYV)
+
+# force a dependency on zaqarclient; pkgdepend work is needed to flush this out.
+depend type=require fmri=library/python/zaqarclient-$(PYV)
--- a/components/openstack/heat/patches/01-heat-conf.patch	Wed Sep 07 14:48:41 2016 -0700
+++ b/components/openstack/heat/patches/01-heat-conf.patch	Wed Sep 07 14:48:41 2016 -0700
@@ -2,26 +2,13 @@
 account for which modules are actually imported for each service.
 These changes are have not yet been submitted upstream.
 
---- heat-2015.1.2/config-generator.conf.~1~	2015-10-13 09:51:53.000000000 -0700
-+++ heat-2015.1.2/config-generator.conf	2016-03-18 00:35:54.956692584 -0700
[email protected]@ -1,6 +1,8 @@
- [DEFAULT]
- output_file = etc/heat/heat.conf.sample
- wrap_width = 79
-+namespace = heat.api.aws.ec2token
-+namespace = heat.api.middleware.ssl
- namespace = heat.common.config
- namespace = heat.common.crypt
- namespace = heat.common.heat_keystoneclient
[email protected]@ -10,9 +12,8 @@ namespace = heat.engine.notification
- namespace = heat.engine.resources
- namespace = heat.openstack.common.eventlet_backdoor
- namespace = heat.openstack.common.policy
--namespace = heat.api.middleware.ssl
--namespace = heat.api.aws.ec2token
- namespace = keystonemiddleware.auth_token
--namespace = oslo.messaging
- namespace = oslo.db
- namespace = oslo.log
-+namespace = oslo.messaging
-+namespace = oslo.middleware
+--- heat-6.0.0/config-generator.conf.orig	2016-04-07 00:37:12.000000000 -0700
++++ heat-6.0.0/config-generator.conf	2016-06-27 17:51:07.216229170 -0700
[email protected]@ -20,3 +20,7 @@ namespace = oslo.policy
+ namespace = oslo.service.service
+ namespace = oslo.service.periodic_task
+ namespace = oslo.service.sslutils
++namespace = oslo.cache
++namespace = oslo.concurrency
++namespace = oslo.reports
++namespace = oslo.versionedobjects
--- a/components/openstack/heat/patches/02-nopycrypto.patch	Wed Sep 07 14:48:41 2016 -0700
+++ b/components/openstack/heat/patches/02-nopycrypto.patch	Wed Sep 07 14:48:41 2016 -0700
@@ -1,22 +1,22 @@
 In-house removal of PyCrypto dependency in Heat. This patch is
 Solaris-specific and not suitable for upstream.
 
---- heat-2015.1.2/heat/common/crypt.py.~1~	2015-10-13 09:51:53.000000000 -0700
-+++ heat-2015.1.2/heat/common/crypt.py	2016-01-28 00:39:30.968509417 -0800
[email protected]@ -13,7 +13,6 @@
- 
+--- heat-5e1c8cb19eaee7570c2e1ca96c330b8d7d77a719/heat/common/crypt.py.~2~	2016-02-02 01:40:32.301153073 -0800
++++ heat-5e1c8cb19eaee7570c2e1ca96c330b8d7d77a719/heat/common/crypt.py	2016-02-02 01:40:52.942307172 -0800
[email protected]@ -14,7 +14,6 @@
  import base64
+ import sys
  
 -from Crypto.Cipher import AES
+ from cryptography import fernet
  from oslo_config import cfg
- 
- from heat.openstack.common.crypto import utils
[email protected]@ -59,9 +58,11 @@ def heat_decrypt(auth_info):
-     if auth_info is None:
-         return None
-     auth = base64.b64decode(auth_info)
+ from oslo_utils import encodeutils
[email protected]@ -88,9 +87,11 @@ def heat_decrypt(value, encryption_key=N
+     """
+     encryption_key = get_valid_encryption_key(encryption_key)
+     auth = base64.b64decode(value)
 -    iv = auth[:AES.block_size]
--    cipher = AES.new(cfg.CONF.auth_encryption_key[:32], AES.MODE_CFB, iv)
+-    cipher = AES.new(encryption_key, AES.MODE_CFB, iv)
 -    res = cipher.decrypt(auth[AES.block_size:])
 +    iv = auth[:16]
 +    cipher = Cipher(alg='aes_256_cfb', key=cfg.CONF.auth_encryption_key[:32],
@@ -26,8 +26,8 @@
      return res
  
  
---- heat-2015.1.2/heat/openstack/common/crypto/utils.py.~1~	2015-10-13 09:51:50.000000000 -0700
-+++ heat-2015.1.2/heat/openstack/common/crypto/utils.py	2016-01-28 00:39:30.935927064 -0800
+--- heat-5e1c8cb19eaee7570c2e1ca96c330b8d7d77a719/heat/openstack/common/crypto/utils.py.~2~	2016-02-02 01:41:07.005491185 -0800
++++ heat-5e1c8cb19eaee7570c2e1ca96c330b8d7d77a719/heat/openstack/common/crypto/utils.py	2016-02-02 01:50:03.227200903 -0800
 @@ -27,8 +27,8 @@
  
  import base64
--- a/components/openstack/heat/patches/03-requirements.patch	Wed Sep 07 14:48:41 2016 -0700
+++ b/components/openstack/heat/patches/03-requirements.patch	Wed Sep 07 14:48:41 2016 -0700
@@ -1,78 +1,15 @@
 In-house patch to remove unnecessary dependencies from Heat's
 requirements files. The specific reasons are as follows:
 
-httplib2	Not applicable
-
-kombu		Not applicable
-
 pycrypto	Not applicable to Solaris (M2Crypto used instead)
 
-qpid-python	Not applicable
-
-cinderclient	push to version 1.3.1
-
---- heat-2015.1.2/heat.egg-info/requires.txt.orig	2015-10-13 10:55:15.000000000 -0600
-+++ heat-2015.1.2/heat.egg-info/requires.txt	2015-11-19 15:08:10.240419209 -0700
[email protected]@ -2,10 +2,8 @@ pbr!=0.7,<1.0,>=0.6
- Babel>=1.3
- eventlet!=0.17.0,>=0.16.1
- greenlet>=0.3.2
--httplib2>=0.7.5
- iso8601>=0.1.9
- keystonemiddleware<1.6.0,>=1.5.0
--kombu>=2.5.0
- lxml>=2.3
- netaddr>=0.7.12
- oslo.config<1.10.0,>=1.9.3 # Apache-2.0
[email protected]@ -22,9 +20,8 @@ osprofiler>=0.3.0 # Apache-2.0
- oslo.versionedobjects<0.2.0,>=0.1.1
- PasteDeploy>=1.5.0
- posix-ipc
--pycrypto>=2.6
- python-ceilometerclient<1.2,>=1.1.1
--python-cinderclient<1.2.0,>=1.1.0
-+python-cinderclient<=1.3.1,>=1.1.0
- python-glanceclient<0.18.0,>=0.15.0
- python-heatclient<0.5.0,>=0.3.0
- python-keystoneclient<1.4.0,>=1.2.0
[email protected]@ -34,7 +31,6 @@ python-saharaclient<0.9.0,>=0.8.0
- python-swiftclient<2.5.0,>=2.2.0
- python-troveclient<1.1.0,>=1.0.7
- PyYAML>=3.1.0
--qpid-python
- requests!=2.4.0,>=2.2.0
- Routes!=2.0,>=1.12.3
- six>=1.9.0
-
---- heat-2015.1.2/requirements.txt.orig	2015-10-13 10:51:54.000000000 -0600
-+++ heat-2015.1.2/requirements.txt	2015-11-19 15:07:10.611579676 -0700
[email protected]@ -6,10 +6,8 @@ pbr!=0.7,<1.0,>=0.6
- Babel>=1.3
- eventlet!=0.17.0,>=0.16.1
- greenlet>=0.3.2
--httplib2>=0.7.5
- iso8601>=0.1.9
- keystonemiddleware<1.6.0,>=1.5.0
--kombu>=2.5.0
- lxml>=2.3
- netaddr>=0.7.12
- oslo.config<1.10.0,>=1.9.3 # Apache-2.0
[email protected]@ -26,9 +24,8 @@ osprofiler>=0.3.0 # Apache-2.0
- oslo.versionedobjects<0.2.0,>=0.1.1
- PasteDeploy>=1.5.0
- posix-ipc
--pycrypto>=2.6
- python-ceilometerclient<1.2,>=1.1.1
--python-cinderclient<1.2.0,>=1.1.0
-+python-cinderclient<=1.3.1,>=1.1.0
- python-glanceclient<0.18.0,>=0.15.0
- python-heatclient<0.5.0,>=0.3.0
- python-keystoneclient<1.4.0,>=1.2.0
[email protected]@ -38,7 +35,6 @@ python-saharaclient<0.9.0,>=0.8.0
- python-swiftclient<2.5.0,>=2.2.0
- python-troveclient<1.1.0,>=1.0.7
- PyYAML>=3.1.0
--qpid-python
- requests!=2.4.0,>=2.2.0
- Routes!=2.0,>=1.12.3
- six>=1.9.0
+--- heat-6.0.0/requirements.txt.~1~	2016-04-07 00:37:15.000000000 -0700
++++ heat-6.0.0/requirements.txt	2016-06-10 14:59:42.585163120 -0700
[email protected]@ -29,7 +29,6 @@ oslo.utils>=3.5.0 # Apache-2.0
+ osprofiler>=1.1.0 # Apache-2.0
+ oslo.versionedobjects>=1.5.0 # Apache-2.0
+ PasteDeploy>=1.5.0 # MIT
+-pycrypto>=2.6 # Public Domain
+ python-barbicanclient>=3.3.0 # Apache-2.0
+ python-ceilometerclient>=2.2.1 # Apache-2.0
+ python-cinderclient>=1.3.1 # Apache-2.0
--- a/components/openstack/heat/patches/04-launchpad-1496277.patch	Wed Sep 07 14:48:41 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,236 +0,0 @@
-This fix will be included in future 2015.1.3 (Kilo) and 5.0.1 (Liberty)
-releases.
-
-From fa19a617a79fd1cb0d892bb8ea87c4b9f6398c34 Mon Sep 17 00:00:00 2001
-From: Zane Bitter <[email protected]>
-Date: Tue, 24 Nov 2015 12:29:38 -0500
-Subject: Load template files only from their known source
-
-Modify get_class to ensure that user-defined resources cannot result in
-reads from the local filesystem. Only resources defined by the operator
-in the global environment should read local files.
-
-To make this work, this patch also adds a separate
-get_class_to_instantiate() method to the Environment.
-
-We were previously using get_class for two different purposes - to get a
-resource plugin on which we could perform introspection to obtain the
-properties and attributes schema, and to get a resource plugin we could
-instantiate to create a Resource object. These are both the same except in
-the case of a TemplateResource, where having two different use cases for
-the same piece of code was adding considerable extra complexity. Combining
-the use cases in this way also made the error handling confusing (leading
-to bug 1518458).
-
-This change separates out the two cases.
-
-Change-Id: I845e7d23c73242a4a4c9c40599690ab705c75caa
-Closes-Bug: #1496277
-Related-Bug: #1447194
-Related-Bug: #1518458
-Related-Bug: #1508115
-(cherry picked from commit 06a713c4456203cd561f16721dc8ac3bcbb37a3
-                       and 26e6d5f6d776c1027c4f27058767952a58d15e25)
----
-
---- heat-2015.1.2/heat/engine/environment.py.~1~	2015-10-13 09:51:53.000000000 -0700
-+++ heat-2015.1.2/heat/engine/environment.py	2016-01-25 20:50:15.096875593 -0800
[email protected]@ -112,6 +112,12 @@ class ResourceInfo(object):
-     def matches(self, resource_type):
-         return False
- 
-+    def get_class(self):
-+        raise NotImplemented
-+
-+    def get_class_to_instantiate(self):
-+        return self.get_class()
-+
-     def __str__(self):
-         return '[%s](User:%s) %s -> %s' % (self.description,
-                                            self.user_resource,
[email protected]@ -140,10 +146,20 @@ class TemplateResourceInfo(ResourceInfo)
- 
-     def get_class(self):
-         from heat.engine.resources import template_resource
-+        if self.user_resource:
-+            allowed_schemes = template_resource.REMOTE_SCHEMES
-+        else:
-+            allowed_schemes = template_resource.LOCAL_SCHEMES
-+        data = template_resource.TemplateResource.get_template_file(
-+            self.template_name,
-+            allowed_schemes)
-         env = self.registry.environment
--        return template_resource.generate_class(str(self.name),
--                                                self.template_name,
--                                                env)
-+        return template_resource.generate_class_from_template(str(self.name),
-+                                                              data, env)
-+
-+    def get_class_to_instantiate(self):
-+        from heat.engine.resources import template_resource
-+        return template_resource.TemplateResource
- 
- 
- class MapResourceInfo(ResourceInfo):
[email protected]@ -398,6 +414,13 @@ class ResourceRegistry(object):
-                 return match
- 
-     def get_class(self, resource_type, resource_name=None):
-+        info = self.get_resource_info(resource_type,
-+                                      resource_name=resource_name)
-+        if info is None:
-+            raise exception.ResourceTypeNotFound(type_name=resource_type)
-+        return info.get_class()
-+
-+    def get_class_to_instantiate(self, resource_type, resource_name=None):
-         if resource_type == "":
-             msg = _('Resource "%s" has no type') % resource_name
-             raise exception.StackValidationFailed(message=msg)
[email protected]@ -414,7 +437,7 @@ class ResourceRegistry(object):
-         if info is None:
-             msg = _("Unknown resource Type : %s") % resource_type
-             raise exception.StackValidationFailed(message=msg)
--        return info.get_class()
-+        return info.get_class_to_instantiate()
- 
-     def as_dict(self):
-         """Return user resources in a dict format."""
[email protected]@ -521,6 +544,10 @@ class Environment(object):
-     def get_class(self, resource_type, resource_name=None):
-         return self.registry.get_class(resource_type, resource_name)
- 
-+    def get_class_to_instantiate(self, resource_type, resource_name=None):
-+        return self.registry.get_class_to_instantiate(resource_type,
-+                                                      resource_name)
-+
-     def get_types(self, support_status=None):
-         return self.registry.get_types(support_status)
- 
---- heat-2015.1.2/heat/engine/resource.py.~1~	2015-10-13 09:51:53.000000000 -0700
-+++ heat-2015.1.2/heat/engine/resource.py	2016-01-25 20:50:15.097540727 -0800
[email protected]@ -137,14 +137,11 @@ class Resource(object):
-             # Call is already for a subclass, so pass it through
-             ResourceClass = cls
-         else:
--            from heat.engine.resources import template_resource
--
-             registry = stack.env.registry
--            try:
--                ResourceClass = registry.get_class(definition.resource_type,
--                                                   resource_name=name)
--            except exception.NotFound:
--                ResourceClass = template_resource.TemplateResource
-+            ResourceClass = registry.get_class_to_instantiate(
-+                definition.resource_type,
-+                resource_name=name)
-+
-             assert issubclass(ResourceClass, Resource)
- 
-         return super(Resource, cls).__new__(ResourceClass)
---- heat-2015.1.2/heat/engine/resources/openstack/heat/resource_group.py.~1~	2015-10-13 09:51:53.000000000 -0700
-+++ heat-2015.1.2/heat/engine/resources/openstack/heat/resource_group.py	2016-01-25 20:50:15.098020940 -0800
[email protected]@ -193,11 +193,7 @@ class ResourceGroup(stack_resource.Stack
-         val_templ = template.Template(test_tmpl)
-         res_def = val_templ.resource_definitions(self.stack)["0"]
-         # make sure we can resolve the nested resource type
--        try:
--            self.stack.env.get_class(res_def.resource_type)
--        except exception.NotFound:
--            # its a template resource
--            pass
-+        self.stack.env.get_class_to_instantiate(res_def.resource_type)
- 
-         try:
-             name = "%s-%s" % (self.stack.name, self.name)
---- heat-2015.1.2/heat/engine/resources/template_resource.py.~1~	2015-10-13 09:51:53.000000000 -0700
-+++ heat-2015.1.2/heat/engine/resources/template_resource.py	2016-01-25 20:50:15.098440251 -0800
[email protected]@ -26,8 +26,11 @@ from heat.engine.resources import stack_
- from heat.engine import template
- 
- 
--def generate_class(name, template_name, env):
--    data = TemplateResource.get_template_file(template_name, ('file',))
-+REMOTE_SCHEMES = ('http', 'https')
-+LOCAL_SCHEMES = ('file',)
-+
-+
-+def generate_class_from_template(name, data, env):
-     tmpl = template.Template(template_format.parse(data))
-     props, attrs = TemplateResource.get_schemas(tmpl, env.param_defaults)
-     cls = type(name, (TemplateResource,),
[email protected]@ -74,9 +77,9 @@ class TemplateResource(stack_resource.St
-             self.template_name = tri.template_name
-             self.resource_type = tri.name
-             if tri.user_resource:
--                self.allowed_schemes = ('http', 'https')
-+                self.allowed_schemes = REMOTE_SCHEMES
-             else:
--                self.allowed_schemes = ('http', 'https', 'file')
-+                self.allowed_schemes = REMOTE_SCHEMES + LOCAL_SCHEMES
- 
-         return tri
- 
---- heat-2015.1.2/heat/engine/service.py.~1~	2015-10-13 09:51:53.000000000 -0700
-+++ heat-2015.1.2/heat/engine/service.py	2016-01-25 20:50:15.099200696 -0800
[email protected]@ -978,8 +978,6 @@ class EngineService(service.Service):
-         """
-         try:
-             resource_class = resources.global_env().get_class(type_name)
--        except exception.StackValidationFailed:
--            raise exception.ResourceTypeNotFound(type_name=type_name)
-         except exception.NotFound as ex:
-             raise exception.StackValidationFailed(message=ex.message)
- 
[email protected]@ -1010,8 +1008,6 @@ class EngineService(service.Service):
-         try:
-             return resources.global_env().get_class(
-                 type_name).resource_to_template(type_name)
--        except exception.StackValidationFailed:
--            raise exception.ResourceTypeNotFound(type_name=type_name)
-         except exception.NotFound as ex:
-             raise exception.StackValidationFailed(message=ex.message)
- 
---- heat-2015.1.2/heat/tests/test_provider_template.py.~1~	2015-10-13 09:51:54.000000000 -0700
-+++ heat-2015.1.2/heat/tests/test_provider_template.py	2016-01-25 20:50:15.099763200 -0800
[email protected]@ -613,7 +613,11 @@ class ProviderTemplateTest(common.HeatTe
- 
-         env_str = {'resource_registry': {'resources': {'fred': {
-             "OS::ResourceType": test_templ_name}}}}
--        env = environment.Environment(env_str)
-+        global_env = environment.Environment({}, user_env=False)
-+        global_env.load(env_str)
-+        with mock.patch('heat.engine.resources._environment',
-+                        global_env):
-+            env = environment.Environment({})
-         cls = env.get_class('OS::ResourceType', 'fred')
-         self.assertNotEqual(template_resource.TemplateResource, cls)
-         self.assertTrue(issubclass(cls, template_resource.TemplateResource))
[email protected]@ -640,10 +644,6 @@ class ProviderTemplateTest(common.HeatTe
-         self.assertTrue(test_templ, "Empty test template")
-         self.m.StubOutWithMock(urlfetch, "get")
-         urlfetch.get(test_templ_name,
--                     allowed_schemes=('file',)
--                     ).AndRaise(urlfetch.URLFetchError(
--                         _('Failed to retrieve template')))
--        urlfetch.get(test_templ_name,
-                      allowed_schemes=('http', 'https')).AndReturn(test_templ)
-         parsed_test_templ = template_format.parse(test_templ)
-         self.m.ReplayAll()
---- heat-2015.1.2/heat/tests/test_resource.py.~1~	2015-10-13 09:51:54.000000000 -0700
-+++ heat-2015.1.2/heat/tests/test_resource.py	2016-01-25 20:50:15.100592773 -0800
[email protected]@ -67,12 +67,13 @@ class ResourceTest(common.HeatTestCase):
-         self.patch('heat.engine.resource.warnings')
- 
-     def test_get_class_ok(self):
--        cls = resources.global_env().get_class('GenericResourceType')
-+        cls = resources.global_env().get_class_to_instantiate(
-+            'GenericResourceType')
-         self.assertEqual(generic_rsrc.GenericResource, cls)
- 
-     def test_get_class_noexist(self):
-         self.assertRaises(exception.StackValidationFailed,
--                          resources.global_env().get_class,
-+                          resources.global_env().get_class_to_instantiate,
-                           'NoExistResourceType')
- 
-     def test_resource_new_ok(self):
--- a/components/openstack/heat/patches/05-neutron-names-required.patch	Wed Sep 07 14:48:41 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-In-house patch to change the name of Neutron objects to use underscores
-instead of hyphens on Solaris.  This patch has not yet been submitted
-upstream.
-
---- heat-2015.1.0/heat/engine/resources/openstack/neutron/neutron.py.orig	2015-05-05 11:16:07.369538369 -0600
-+++ heat-2015.1.0/heat/engine/resources/openstack/neutron/neutron.py	2015-05-05 11:17:11.789570983 -0600
[email protected]@ -13,6 +13,7 @@
- from oslo_utils import uuidutils
- import six
-
-+import platform
- import warnings
-
- from heat.common import exception
[email protected]@ -188,3 +189,10 @@ class NeutronResource(resource.Resource)
-             return True
-
-         return self._not_found_in_call(self._show_resource)
-+
-+    def physical_resource_name(self):
-+        name = super(NeutronResource, self).physical_resource_name()
-+        if platform.uname()[0] == "SunOS":
-+            # EVS can not use hyphen characters
-+            name = name.replace("-", "_")
-+        return name
--- a/components/openstack/heat/patches/07-heat-plugin-defaults.patch	Wed Sep 07 14:48:41 2016 -0700
+++ b/components/openstack/heat/patches/07-heat-plugin-defaults.patch	Wed Sep 07 14:48:41 2016 -0700
@@ -3,11 +3,11 @@
 searched by Heat. This patch is Solaris specific and not suitable for
 upstream contribution.
 
---- heat-2015.1.2/heat/common/config.py.~1~	2015-10-13 09:51:53.000000000 -0700
-+++ heat-2015.1.2/heat/common/config.py	2016-01-28 01:27:19.707862313 -0800
[email protected]@ -97,8 +97,7 @@ engine_opts = [
-                       "with your cloud image (for OS::Nova::Server) or "
-                       "'ec2-user' (for AWS::EC2::Instance).")),
+--- heat-6.0.0/heat/common/config.py.~1~	2016-04-07 00:37:15.000000000 -0700
++++ heat-6.0.0/heat/common/config.py	2016-06-10 14:59:42.624070450 -0700
[email protected]@ -88,8 +88,7 @@ service_opts = [
+ 
+ engine_opts = [
      cfg.ListOpt('plugin_dirs',
 -                default=['/usr/lib64/heat', '/usr/lib/heat',
 -                         '/usr/local/lib/heat', '/usr/local/lib64/heat'],
--- a/components/openstack/heat/patches/08-mysql_cluster_support.patch	Wed Sep 07 14:48:41 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,307 +0,0 @@
-This patchset is for bug:
-
-22725887 - Heat needs to support MySQL Cluster
-
-This fixes the following aspects of Heat:
-1. Implementation of an oslo.db configuration parameter to specify the MySQL
-   storage engine (mysql_storage_engine).
-2. Replacement of hardcoded SQL statements that set the engine to "InnoDB"
-   to the above configuration value.
-3. Logic to handle SQL differences between MySQL InnoDB and MySQL Cluster (NDB).
-   This includes column lengths, constraints, foreign keys, and indexes.
-
-This has not been committed upstream, but has been filed in launchpad:
-
-https://bugs.launchpad.net/heat/+bug/1564110
-
-
---- heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/054_stack_tags_table.py.orig	2016-07-29 12:03:45.066916862 -0600
-+++ heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/054_stack_tags_table.py	2016-07-29 12:08:17.012890454 -0600
[email protected]@ -11,10 +11,12 @@
- #    License for the specific language governing permissions and limitations
- #    under the License.
- 
-+from oslo_config import cfg
- import sqlalchemy
- 
- from heat.db.sqlalchemy import types as heat_db_types
- 
-+CONF = cfg.CONF
- 
- def upgrade(migrate_engine):
-     meta = sqlalchemy.MetaData(bind=migrate_engine)
[email protected]@ -35,7 +37,7 @@ def upgrade(migrate_engine):
-                           sqlalchemy.String(36),
-                           sqlalchemy.ForeignKey('stack.id'),
-                           nullable=False),
--        mysql_engine='InnoDB',
-+        mysql_engine=CONF.database.mysql_storage_engine,
-         mysql_charset='utf8'
-     )
-     stack_tag.create()
---- heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/015_grizzly.py.orig	2016-07-29 12:03:53.884104708 -0600
-+++ heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/015_grizzly.py	2016-07-29 12:08:35.264920866 -0600
[email protected]@ -11,8 +11,10 @@
- #    License for the specific language governing permissions and limitations
- #    under the License.
- 
-+from oslo_config import cfg
- import sqlalchemy
- 
-+CONF = cfg.CONF
- 
- def upgrade(migrate_engine):
-     meta = sqlalchemy.MetaData()
[email protected]@ -25,7 +27,7 @@ def upgrade(migrate_engine):
-         sqlalchemy.Column('created_at', sqlalchemy.DateTime),
-         sqlalchemy.Column('updated_at', sqlalchemy.DateTime),
-         sqlalchemy.Column('template', sqlalchemy.Text),
--        mysql_engine='InnoDB',
-+        mysql_engine=CONF.database.mysql_storage_engine,
-         mysql_charset='utf8'
-     )
- 
[email protected]@ -44,7 +46,7 @@ def upgrade(migrate_engine):
-         sqlalchemy.Column('aws_auth_url', sqlalchemy.Text),
-         sqlalchemy.Column('tenant_id', sqlalchemy.String(256)),
-         sqlalchemy.Column('aws_creds', sqlalchemy.Text),
--        mysql_engine='InnoDB',
-+        mysql_engine=CONF.database.mysql_storage_engine,
-         mysql_charset='utf8'
-     )
- 
[email protected]@ -71,7 +73,7 @@ def upgrade(migrate_engine):
-         sqlalchemy.Column('tenant', sqlalchemy.String(256)),
-         sqlalchemy.Column('disable_rollback', sqlalchemy.Boolean,
-                           nullable=False),
--        mysql_engine='InnoDB',
-+        mysql_engine=CONF.database.mysql_storage_engine,
-         mysql_charset='utf8'
-     )
- 
[email protected]@ -88,7 +90,7 @@ def upgrade(migrate_engine):
-         sqlalchemy.Column('stack_id', sqlalchemy.String(36),
-                           sqlalchemy.ForeignKey('stack.id'), nullable=False),
-         sqlalchemy.Column('rsrc_metadata', sqlalchemy.Text),
--        mysql_engine='InnoDB',
-+        mysql_engine=CONF.database.mysql_storage_engine,
-         mysql_charset='utf8'
-     )
- 
[email protected]@ -106,7 +108,7 @@ def upgrade(migrate_engine):
-         sqlalchemy.Column('resource_status_reason', sqlalchemy.String(255)),
-         sqlalchemy.Column('resource_type', sqlalchemy.String(255)),
-         sqlalchemy.Column('resource_properties', sqlalchemy.PickleType),
--        mysql_engine='InnoDB',
-+        mysql_engine=CONF.database.mysql_storage_engine,
-         mysql_charset='utf8'
-     )
- 
[email protected]@ -122,7 +124,7 @@ def upgrade(migrate_engine):
-         sqlalchemy.Column('last_evaluated', sqlalchemy.DateTime),
-         sqlalchemy.Column('stack_id', sqlalchemy.String(36),
-                           sqlalchemy.ForeignKey('stack.id'), nullable=False),
--        mysql_engine='InnoDB',
-+        mysql_engine=CONF.database.mysql_storage_engine,
-         mysql_charset='utf8'
-     )
- 
[email protected]@ -136,7 +138,7 @@ def upgrade(migrate_engine):
-         sqlalchemy.Column('watch_rule_id', sqlalchemy.Integer,
-                           sqlalchemy.ForeignKey('watch_rule.id'),
-                           nullable=False),
--        mysql_engine='InnoDB',
-+        mysql_engine=CONF.database.mysql_storage_engine,
-         mysql_charset='utf8'
-     )
- 
---- heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/059_sync_point.py.orig	2016-07-29 12:04:02.707922940 -0600
-+++ heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/059_sync_point.py	2016-07-29 12:09:00.649161442 -0600
[email protected]@ -11,10 +11,12 @@
- #    License for the specific language governing permissions and limitations
- #    under the License.
- 
-+from oslo_config import cfg
- import sqlalchemy
- 
- from heat.db.sqlalchemy import types as heat_db_types
- 
-+CONF = cfg.CONF
- 
- def upgrade(migrate_engine):
-     meta = sqlalchemy.MetaData()
[email protected]@ -41,7 +43,7 @@ def upgrade(migrate_engine):
-         sqlalchemy.ForeignKeyConstraint(['stack_id'], ['stack.id'],
-                                         name='fk_stack_id'),
- 
--        mysql_engine='InnoDB',
-+        mysql_engine=CONF.database.mysql_storage_engine,
-         mysql_charset='utf8'
-     )
-     sync_point.create()
---- heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/033_software_config.py.orig	2016-07-29 12:04:10.260632439 -0600
-+++ heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/033_software_config.py	2016-07-29 12:09:20.089705318 -0600
[email protected]@ -11,10 +11,12 @@
- #    License for the specific language governing permissions and limitations
- #    under the License.
- 
-+from oslo_config import cfg
- import sqlalchemy
- 
- from heat.db.sqlalchemy import types
- 
-+CONF = cfg.CONF
- 
- def upgrade(migrate_engine):
-     meta = sqlalchemy.MetaData()
[email protected]@ -34,7 +36,7 @@ def upgrade(migrate_engine):
-         sqlalchemy.Column('tenant', sqlalchemy.String(64),
-                           nullable=False,
-                           index=True),
--        mysql_engine='InnoDB',
-+        mysql_engine=CONF.database.mysql_storage_engine,
-         mysql_charset='utf8'
-     )
-     software_config.create()
[email protected]@ -63,7 +65,7 @@ def upgrade(migrate_engine):
-         sqlalchemy.Column('tenant', sqlalchemy.String(64),
-                           nullable=False,
-                           index=True),
--        mysql_engine='InnoDB',
-+        mysql_engine=CONF.database.mysql_storage_engine,
-         mysql_charset='utf8'
-     )
-     software_deployment.create()
---- heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/057_resource_uuid_to_id.py.orig	2016-07-29 12:04:19.750231791 -0600
-+++ heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/057_resource_uuid_to_id.py	2016-07-28 14:01:17.581307597 -0600
[email protected]@ -194,10 +194,11 @@ def upgrade_resource_data_post(migrate_e
-         name = inspector.get_indexes('resource_data')[0]['name']
-         sqlalchemy.Index(name, rd_table.c.resource_id).drop()
- 
-+    # Change column before it becomes a foreign key
-+    rd_table.c.resource_id.alter(nullable=False)
-     cons = migrate.ForeignKeyConstraint(columns=[rd_table.c.resource_id],
-                                         refcolumns=[res_table.c.id])
-     cons.create()
--    rd_table.c.resource_id.alter(nullable=False)
- 
-     rd_table.c.tmp_res_uuid.drop()
- 
---- heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/044_snapshots.py.orig	2016-07-29 12:04:27.749158504 -0600
-+++ heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/044_snapshots.py	2016-07-29 12:10:54.210544287 -0600
[email protected]@ -11,10 +11,12 @@
- #    License for the specific language governing permissions and limitations
- #    under the License.
- 
-+from oslo_config import cfg
- import sqlalchemy
- 
- from heat.db.sqlalchemy import types
- 
-+CONF = cfg.CONF
- 
- def upgrade(migrate_engine):
-     meta = sqlalchemy.MetaData()
[email protected]@ -38,7 +40,7 @@ def upgrade(migrate_engine):
-         sqlalchemy.Column('tenant', sqlalchemy.String(64),
-                           nullable=False,
-                           index=True),
--        mysql_engine='InnoDB',
-+        mysql_engine=CONF.database.mysql_storage_engine,
-         mysql_charset='utf8'
-     )
-     sqlalchemy.Table('stack', meta, autoload=True)
---- heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/051_service.py.orig	2016-07-29 12:04:36.470596083 -0600
-+++ heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/051_service.py	2016-07-29 12:11:18.330506769 -0600
[email protected]@ -15,8 +15,10 @@
- 
- import uuid
- 
-+from oslo_config import cfg
- import sqlalchemy
- 
-+CONF = cfg.CONF
- 
- def upgrade(migrate_engine):
-     meta = sqlalchemy.MetaData()
[email protected]@ -36,7 +38,7 @@ def upgrade(migrate_engine):
-         sqlalchemy.Column('created_at', sqlalchemy.DateTime),
-         sqlalchemy.Column('updated_at', sqlalchemy.DateTime),
-         sqlalchemy.Column('deleted_at', sqlalchemy.DateTime),
--        mysql_engine='InnoDB',
-+        mysql_engine=CONF.database.mysql_storage_engine,
-         mysql_charset='utf8'
-     )
-     service.create()
---- heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/021_resource_data.py.orig	2016-07-29 12:04:51.248485607 -0600
-+++ heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/021_resource_data.py	2016-07-29 12:11:47.651134656 -0600
[email protected]@ -11,8 +11,10 @@
- #    License for the specific language governing permissions and limitations
- #    under the License.
- 
-+from oslo_config import cfg
- import sqlalchemy
- 
-+CONF = cfg.CONF
- 
- def upgrade(migrate_engine):
-     meta = sqlalchemy.MetaData()
[email protected]@ -33,7 +35,7 @@ def upgrade(migrate_engine):
-                           sqlalchemy.String(36),
-                           sqlalchemy.ForeignKey('resource.id'),
-                           nullable=False),
--        mysql_engine='InnoDB',
-+        mysql_engine=CONF.database.mysql_storage_engine,
-         mysql_charset='utf8'
-     )
-     sqlalchemy.Table('resource', meta, autoload=True)
---- heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/031_stack_lock.py.orig	2016-07-29 12:04:59.100720052 -0600
-+++ heat-2015.1.2/heat/db/sqlalchemy/migrate_repo/versions/031_stack_lock.py	2016-07-29 12:12:03.834952665 -0600
[email protected]@ -11,8 +11,10 @@
- #    License for the specific language governing permissions and limitations
- #    under the License.
- 
-+from oslo_config import cfg
- import sqlalchemy
- 
-+CONF = cfg.CONF
- 
- def upgrade(migrate_engine):
-     meta = sqlalchemy.MetaData()
[email protected]@ -27,7 +29,7 @@ def upgrade(migrate_engine):
-         sqlalchemy.Column('created_at', sqlalchemy.DateTime),
-         sqlalchemy.Column('updated_at', sqlalchemy.DateTime),
-         sqlalchemy.Column('engine_id', sqlalchemy.String(length=36)),
--        mysql_engine='InnoDB',
-+        mysql_engine=CONF.database.mysql_storage_engine,
-         mysql_charset='utf8'
-     )
-     sqlalchemy.Table('stack', meta, autoload=True)
---- heat-2015.1.2/heat/db/sqlalchemy/models.py.orig	2016-07-29 12:05:08.842912688 -0600
-+++ heat-2015.1.2/heat/db/sqlalchemy/models.py	2016-07-29 12:15:35.087392556 -0600
[email protected]@ -16,6 +16,7 @@ SQLAlchemy models for heat data.
- 
- import uuid
- 
-+from oslo_config import cfg
- from oslo_db.sqlalchemy import models
- from oslo_utils import timeutils
- import six
[email protected]@ -27,6 +28,8 @@ from sqlalchemy.orm import session as or
- 
- from heat.db.sqlalchemy import types
- 
-+CONF = cfg.CONF
-+
- BASE = declarative.declarative_base()
- 
- 
[email protected]@ -37,7 +40,7 @@ def get_session():
- 
- class HeatBase(models.ModelBase, models.TimestampMixin):
-     """Base class for Heat Models."""
--    __table_args__ = {'mysql_engine': 'InnoDB'}
-+    __table_args__ = {'mysql_engine': CONF.database.mysql_storage_engine}
- 
-     def expire(self, session=None, attrs=None):
-         """Expire this object ()."""