summaryrefslogtreecommitdiff
path: root/heat/locale/zh_CN
diff options
context:
space:
mode:
authorOpenStack Jenkins <jenkins@openstack.org>2014-01-31 06:07:59 +0000
committerOpenStack Jenkins <jenkins@openstack.org>2014-01-31 06:07:59 +0000
commit3f143ced41ef1dafa10a7fba6b9a6a6f9a1a1f24 (patch)
treecf6889bd9cd84db59aa31d5917d896d06e4699ec /heat/locale/zh_CN
parent0b073c54fd3946f573b6ca4f8e76d0b402ea87a4 (diff)
downloadheat-3f143ced41ef1dafa10a7fba6b9a6a6f9a1a1f24.tar.gz
Imported Translations from Transifex
Change-Id: Ief4e602845e7283c982a772bf53dbb0d8bffce43
Diffstat (limited to 'heat/locale/zh_CN')
-rw-r--r--heat/locale/zh_CN/LC_MESSAGES/heat.po1923
1 files changed, 1111 insertions, 812 deletions
diff --git a/heat/locale/zh_CN/LC_MESSAGES/heat.po b/heat/locale/zh_CN/LC_MESSAGES/heat.po
index dd7531cab..c3b58fabd 100644
--- a/heat/locale/zh_CN/LC_MESSAGES/heat.po
+++ b/heat/locale/zh_CN/LC_MESSAGES/heat.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: heat 2013.2.a430.gd264018\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2013-12-30 06:05+0000\n"
+"POT-Creation-Date: 2014-01-31 06:07+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: zh_Hans_CN <LL@li.org>\n"
@@ -136,7 +136,7 @@ msgid "Request expired or more than 15mins in the future"
msgstr ""
#: heat/api/aws/exception.py:197
-msgid "Service temporarily unvavailable"
+msgid "Service temporarily unavailable"
msgstr ""
#: heat/api/aws/exception.py:207
@@ -225,7 +225,7 @@ msgstr ""
msgid "Invalid state %(state)s, expecting one of %(expect)s"
msgstr ""
-#: heat/api/cloudwatch/watch.py:339
+#: heat/api/cloudwatch/watch.py:330
#, python-format
msgid "setting %(name)s to %(state)s"
msgstr ""
@@ -264,30 +264,30 @@ msgstr ""
msgid "Unknown accept header: %s...returning HTTP not found."
msgstr ""
-#: heat/api/openstack/v1/actions.py:43
+#: heat/api/openstack/v1/actions.py:45
msgid "No action specified"
msgstr ""
-#: heat/api/openstack/v1/actions.py:46
+#: heat/api/openstack/v1/actions.py:48
msgid "Multiple actions specified"
msgstr ""
-#: heat/api/openstack/v1/actions.py:50
+#: heat/api/openstack/v1/actions.py:52
#, python-format
msgid "Invalid action %s specified"
msgstr ""
-#: heat/api/openstack/v1/actions.py:57
+#: heat/api/openstack/v1/actions.py:59
#, python-format
msgid "Unexpected action %s"
msgstr ""
-#: heat/api/openstack/v1/events.py:103
+#: heat/api/openstack/v1/events.py:105
#, python-format
msgid "No events found for resource %s"
msgstr ""
-#: heat/api/openstack/v1/events.py:121
+#: heat/api/openstack/v1/events.py:123
#, python-format
msgid "No event %s found"
msgstr ""
@@ -310,7 +310,7 @@ msgstr ""
msgid "No template specified"
msgstr ""
-#: heat/api/openstack/v1/util.py:57
+#: heat/api/openstack/v1/util.py:62
msgid "Invalid Stack address"
msgstr ""
@@ -368,34 +368,45 @@ msgstr ""
msgid "RPC timeout for the engine liveness check that is used for stack locking."
msgstr ""
-#: heat/common/config.py:134
+#: heat/common/config.py:135
+msgid ""
+"Type of endpoint in Identity service catalog to use for communication "
+"with the OpenStack service."
+msgstr ""
+
+#: heat/common/config.py:138
msgid "Optional CA cert file to use in SSL connections"
msgstr ""
-#: heat/common/config.py:136
+#: heat/common/config.py:140
msgid "Optional PEM-formatted certificate chain file"
msgstr ""
-#: heat/common/config.py:138
+#: heat/common/config.py:142
msgid "Optional PEM-formatted file that contains the private key"
msgstr ""
-#: heat/common/config.py:142
+#: heat/common/config.py:146
msgid "If set then the server's certificate will not be verified"
msgstr ""
-#: heat/common/config.py:162
+#: heat/common/config.py:161
+#, python-format
+msgid "Optional heat url in format like http://0.0.0.0:8004/v1/%(tenant_id)s."
+msgstr ""
+
+#: heat/common/config.py:171
msgid ""
"Heat build revision. If you would prefer to manage your build revision "
"separately you can move this section to a different file and add it as "
"another config option"
msgstr ""
-#: heat/common/config.py:234
+#: heat/common/config.py:243
msgid "Unable to locate config file"
msgstr ""
-#: heat/common/config.py:246
+#: heat/common/config.py:255
#, python-format
msgid ""
"Unable to load %(app_name)s from configuration file %(conf_file)s.\n"
@@ -410,247 +421,238 @@ msgstr ""
msgid "Backend authentication failed"
msgstr ""
-#: heat/common/environment_format.py:40
+#: heat/common/environment_format.py:41
#, python-format
msgid "environment has wrong section \"%s\""
msgstr ""
-#: heat/common/exception.py:102
+#: heat/common/exception.py:103
msgid "An unknown exception occurred."
msgstr ""
-#: heat/common/exception.py:113 heat/openstack/common/rpc/common.py:88
+#: heat/common/exception.py:114 heat/openstack/common/rpc/common.py:88
msgid "Exception in string format operation"
msgstr ""
-#: heat/common/exception.py:128
+#: heat/common/exception.py:129
#, python-format
msgid "Missing required credential: %(required)s"
msgstr ""
-#: heat/common/exception.py:132
+#: heat/common/exception.py:133
#, python-format
msgid ""
"Incorrect auth strategy, expected \"%(expected)s\" but received "
"\"%(received)s\""
msgstr ""
-#: heat/common/exception.py:137
+#: heat/common/exception.py:138
#, python-format
msgid "Connect error/bad request to Auth service at URL %(url)s."
msgstr ""
-#: heat/common/exception.py:141
+#: heat/common/exception.py:142
#, python-format
msgid "Auth service at URL %(url)s not found."
msgstr ""
-#: heat/common/exception.py:145
+#: heat/common/exception.py:146
msgid "Authorization failed."
msgstr ""
-#: heat/common/exception.py:149
+#: heat/common/exception.py:150
msgid "You are not authenticated."
msgstr ""
-#: heat/common/exception.py:153 heat/common/exception.py:158
+#: heat/common/exception.py:154 heat/common/exception.py:159
msgid "You are not authorized to complete this action."
msgstr ""
-#: heat/common/exception.py:162
+#: heat/common/exception.py:163
#, python-format
msgid "Data supplied was not valid: %(reason)s"
msgstr ""
-#: heat/common/exception.py:166
+#: heat/common/exception.py:167
#, python-format
msgid "Redirecting to %(uri)s for authorization."
msgstr ""
-#: heat/common/exception.py:170
+#: heat/common/exception.py:171
msgid "The URI was too long."
msgstr ""
-#: heat/common/exception.py:174
+#: heat/common/exception.py:175
#, python-format
msgid "Maximum redirects (%(redirects)s) was exceeded."
msgstr ""
-#: heat/common/exception.py:178
+#: heat/common/exception.py:179
msgid "Received invalid HTTP redirect."
msgstr ""
-#: heat/common/exception.py:182
+#: heat/common/exception.py:183
#, python-format
msgid ""
"Multiple 'image' service matches for region %(region)s. This generally "
"means that a region is required and you have not supplied one."
msgstr ""
-#: heat/common/exception.py:188
+#: heat/common/exception.py:189
#, python-format
msgid "The Parameter (%(key)s) was not provided."
msgstr ""
-#: heat/common/exception.py:192
+#: heat/common/exception.py:193
#, python-format
msgid "The Parameter (%(key)s) was not defined in template."
msgstr ""
-#: heat/common/exception.py:196
+#: heat/common/exception.py:197
#, python-format
msgid "The Parameter (%(key)s) has no attributes."
msgstr ""
-#: heat/common/exception.py:200
+#: heat/common/exception.py:201
#, python-format
msgid "The Referenced Attribute (%(resource)s %(key)s) is incorrect."
msgstr ""
-#: heat/common/exception.py:205
+#: heat/common/exception.py:206
#, python-format
msgid "The specified reference \"%(resource)s\" (in %(key)s) is incorrect."
msgstr ""
-#: heat/common/exception.py:210
+#: heat/common/exception.py:211
#, python-format
msgid "The Key (%(key_name)s) could not be found."
msgstr ""
-#: heat/common/exception.py:214
+#: heat/common/exception.py:215
#, python-format
msgid "The Flavor ID (%(flavor_id)s) could not be found."
msgstr ""
-#: heat/common/exception.py:218
+#: heat/common/exception.py:219
#, python-format
msgid "The Image (%(image_name)s) could not be found."
msgstr ""
-#: heat/common/exception.py:222
+#: heat/common/exception.py:223
#, python-format
msgid "Multiple physical resources were found with name (%(name)s)."
msgstr ""
-#: heat/common/exception.py:227
+#: heat/common/exception.py:228
#, python-format
msgid "Searching Tenant %(target)s from Tenant %(actual)s forbidden."
msgstr ""
-#: heat/common/exception.py:232
+#: heat/common/exception.py:233
#, python-format
msgid "The Stack (%(stack_name)s) could not be found."
msgstr ""
-#: heat/common/exception.py:236
+#: heat/common/exception.py:237
#, python-format
msgid "The Stack (%(stack_name)s) already exists."
msgstr ""
-#: heat/common/exception.py:240
+#: heat/common/exception.py:241
#, python-format
msgid "%(message)s"
msgstr ""
-#: heat/common/exception.py:244
+#: heat/common/exception.py:245
#, python-format
msgid ""
"The Resource (%(resource_name)s) could not be found in Stack "
"%(stack_name)s."
msgstr ""
-#: heat/common/exception.py:249
+#: heat/common/exception.py:250
#, python-format
msgid "The Resource Type (%(type_name)s) could not be found."
msgstr ""
-#: heat/common/exception.py:253
+#: heat/common/exception.py:254
#, python-format
msgid "The Resource (%(resource_name)s) is not available."
msgstr ""
-#: heat/common/exception.py:257
+#: heat/common/exception.py:258
#, python-format
msgid "The Resource (%(resource_id)s) could not be found."
msgstr ""
-#: heat/common/exception.py:261
+#: heat/common/exception.py:262
#, python-format
msgid "The Watch Rule (%(watch_name)s) could not be found."
msgstr ""
-#: heat/common/exception.py:265
+#: heat/common/exception.py:266
#, python-format
msgid "%(exc_type)s: %(message)s"
msgstr ""
-#: heat/common/exception.py:279
+#: heat/common/exception.py:280
#, python-format
msgid "%(feature)s is not supported."
msgstr ""
-#: heat/common/exception.py:283
+#: heat/common/exception.py:284
#, python-format
msgid "Cannot define the following properties at the same time: %s."
msgstr ""
-#: heat/common/exception.py:301
+#: heat/common/exception.py:302
msgid ""
"Egress rules are only allowed when Neutron is used and the 'VpcId' "
"property is set."
msgstr ""
-#: heat/common/exception.py:319
+#: heat/common/exception.py:316
+#, python-format
+msgid "Invalid content type %(content_type)s"
+msgstr ""
+
+#: heat/common/exception.py:320
#, python-format
msgid "Request limit exceeded: %(message)s"
msgstr ""
-#: heat/common/exception.py:323
+#: heat/common/exception.py:324
msgid "Maximum resources per stack exceeded."
msgstr ""
-#: heat/common/exception.py:327
+#: heat/common/exception.py:328
#, python-format
msgid "Stack %(stack_name)s already has an action (%(action)s) in progress."
msgstr ""
-#: heat/common/heat_keystoneclient.py:101
-msgid "Keystone v2 API connection failed, no password or auth_token!"
-msgstr ""
-
-#: heat/common/heat_keystoneclient.py:116
-msgid "v2 trust token re-scoping failed!"
+#: heat/common/heat_keystoneclient.py:104
+msgid "Keystone v3 API connection failed, no password trust or auth_token!"
msgstr ""
-#: heat/common/heat_keystoneclient.py:171
-msgid "Keystone v3 API connection failed, no password or auth_token!"
+#: heat/common/heat_keystoneclient.py:118
+msgid "trust token re-scoping failed!"
msgstr ""
-#: heat/common/heat_keystoneclient.py:242
+#: heat/common/heat_keystoneclient.py:202
#, python-format
msgid "Truncating the username %s to the last 64 characters."
msgstr ""
-#: heat/common/heat_keystoneclient.py:262
+#: heat/common/heat_keystoneclient.py:222
#, python-format
msgid "Adding user %(user)s to role %(role)s"
msgstr ""
-#: heat/common/heat_keystoneclient.py:267
+#: heat/common/heat_keystoneclient.py:227
#, python-format
msgid "Failed to add user %(user)s to role %(role)s, check role exists!"
msgstr ""
-#: heat/common/heat_keystoneclient.py:293
-#, python-format
-msgid "Problem deleting user %(user)s: %(reason)s"
-msgstr ""
-
-#: heat/common/heat_keystoneclient.py:323
-#, python-format
-msgid "Unexpected number of ec2 credentials %(len)s for %(user)s"
-msgstr ""
-
#: heat/common/identifier.py:41
msgid "Stack name may not contain \"/\""
msgstr ""
@@ -694,10 +696,18 @@ msgstr ""
msgid "Invalid UUID version (%d)"
msgstr ""
-#: heat/common/template_format.py:62
+#: heat/common/template_format.py:60
msgid "Template exceeds maximum allowed size."
msgstr ""
+#: heat/common/template_format.py:73
+msgid "The template is not a JSON object or YAML mapping."
+msgstr ""
+
+#: heat/common/template_format.py:79
+msgid "Template format version not found."
+msgstr ""
+
#: heat/common/timeutils.py:34
msgid "Only ISO 8601 duration format of the form PT#H#M#S is supported."
msgstr ""
@@ -762,7 +772,7 @@ msgstr ""
msgid "SIGHUP received"
msgstr ""
-#: heat/common/wsgi.py:264 heat/openstack/common/service.py:299
+#: heat/common/wsgi.py:264 heat/openstack/common/service.py:337
#, python-format
msgid "Starting %d workers"
msgstr ""
@@ -853,43 +863,53 @@ msgstr ""
msgid "no resources for stack_id %s were found"
msgstr ""
-#: heat/db/sqlalchemy/api.py:373
+#: heat/db/sqlalchemy/api.py:385
#, python-format
msgid "Attempt to update a stack with id: %(id)s %(msg)s"
msgstr ""
-#: heat/db/sqlalchemy/api.py:387
+#: heat/db/sqlalchemy/api.py:397
#, python-format
msgid "Attempt to delete a stack with id: %(id)s %(msg)s"
msgstr ""
-#: heat/db/sqlalchemy/api.py:572
+#: heat/db/sqlalchemy/api.py:582
#, python-format
msgid "Attempt to update a watch with id: %(id)s %(msg)s"
msgstr ""
-#: heat/db/sqlalchemy/api.py:584
+#: heat/db/sqlalchemy/api.py:594
#, python-format
msgid "Attempt to delete watch_rule: %(id)s %(msg)s"
msgstr ""
-#: heat/db/sqlalchemy/api.py:613
+#: heat/db/sqlalchemy/api.py:639
+#, python-format
+msgid "Attempt to delete software config with %(id)s %(msg)s"
+msgstr ""
+
+#: heat/db/sqlalchemy/api.py:677
+#, python-format
+msgid "Attempt to update sofware deployment with id: %(id)s %(msg)s"
+msgstr ""
+
+#: heat/db/sqlalchemy/api.py:690
+#, python-format
+msgid "Attempt to delete software deployment with %(id)s %(msg)s"
+msgstr ""
+
+#: heat/db/sqlalchemy/api.py:702
msgid "age should be an integer"
msgstr ""
-#: heat/db/sqlalchemy/api.py:615
+#: heat/db/sqlalchemy/api.py:704
msgid "age should be a positive integer"
msgstr ""
-#: heat/db/sqlalchemy/api.py:619
+#: heat/db/sqlalchemy/api.py:708
msgid "granularity should be days, hours, minutes, or seconds"
msgstr ""
-#: heat/db/sqlalchemy/migration.py:42
-#: heat/openstack/common/db/sqlalchemy/migration.py:220
-msgid "version should be an integer"
-msgstr ""
-
#: heat/db/sqlalchemy/migrate_repo/versions/029_event_id_to_uuid.py:41
msgid ""
"If you really want to downgrade to this version, you should drop all the "
@@ -905,7 +925,7 @@ msgstr ""
msgid "Unexpected value for parameter %(name)s : %(value)s"
msgstr ""
-#: heat/engine/api.py:209
+#: heat/engine/api.py:214
msgid "Unexpected number of keys in watch_data.data!"
msgstr ""
@@ -938,112 +958,112 @@ msgstr ""
msgid "Nova connection failed, no auth_token!"
msgstr ""
-#: heat/engine/clients.py:139
+#: heat/engine/clients.py:142
msgid "Swift connection failed, no auth_token!"
msgstr ""
-#: heat/engine/clients.py:164
+#: heat/engine/clients.py:170
msgid "Neutron connection failed, no auth_token!"
msgstr ""
-#: heat/engine/clients.py:188
+#: heat/engine/clients.py:197
msgid "Cinder connection failed, no auth_token!"
msgstr ""
-#: heat/engine/clients.py:216
+#: heat/engine/clients.py:228
msgid "Trove connection failed, no auth_token!"
msgstr ""
-#: heat/engine/clients.py:241
+#: heat/engine/clients.py:258
msgid "Ceilometer connection failed, no auth_token!"
msgstr ""
-#: heat/engine/clients.py:277
+#: heat/engine/clients.py:305
msgid "Heat connection failed, no auth_token!"
msgstr ""
-#: heat/engine/constraints.py:74
+#: heat/engine/constraints.py:82
#, python-format
msgid "Invalid type (%s)"
msgstr ""
-#: heat/engine/constraints.py:81
+#: heat/engine/constraints.py:89
#, python-format
msgid "Single schema valid only for %(ltype)s, not %(utype)s"
msgstr ""
-#: heat/engine/constraints.py:91
+#: heat/engine/constraints.py:99
#, python-format
msgid "Schema valid only for %(ltype)s or %(mtype)s, not %(utype)s"
msgstr ""
-#: heat/engine/constraints.py:100
+#: heat/engine/constraints.py:108
#, python-format
msgid "%(name)s constraint invalid for %(utype)s"
msgstr ""
-#: heat/engine/constraints.py:111
+#: heat/engine/constraints.py:122 heat/engine/parameters.py:79
#, python-format
msgid "Invalid default %(default)s (%(exc)s)"
msgstr ""
-#: heat/engine/constraints.py:179
+#: heat/engine/constraints.py:198
#, python-format
msgid "Invalid key %s"
msgstr ""
-#: heat/engine/constraints.py:268
+#: heat/engine/constraints.py:287
msgid "min/max must be numeric"
msgstr ""
-#: heat/engine/constraints.py:271
+#: heat/engine/constraints.py:290
msgid "range must have min and/or max"
msgstr ""
-#: heat/engine/constraints.py:275
+#: heat/engine/constraints.py:294
#, python-format
msgid "The value must be at least %(min)s."
msgstr ""
-#: heat/engine/constraints.py:277
+#: heat/engine/constraints.py:296
#, python-format
msgid "The value must be no greater than %(max)s."
msgstr ""
-#: heat/engine/constraints.py:279
+#: heat/engine/constraints.py:298
#, python-format
msgid "The value must be in the range %(min)s to %(max)s."
msgstr ""
-#: heat/engine/constraints.py:329
+#: heat/engine/constraints.py:348
msgid "min/max length must be integral"
msgstr ""
-#: heat/engine/constraints.py:334
+#: heat/engine/constraints.py:353
#, python-format
msgid "The length must be at least %(min)s."
msgstr ""
-#: heat/engine/constraints.py:336
+#: heat/engine/constraints.py:355
#, python-format
msgid "The length must be no greater than %(max)s."
msgstr ""
-#: heat/engine/constraints.py:338
+#: heat/engine/constraints.py:357
#, python-format
msgid "The length must be in the range %(min)s to %(max)s."
msgstr ""
-#: heat/engine/constraints.py:369
+#: heat/engine/constraints.py:388
msgid "AllowedValues must be a list"
msgstr ""
-#: heat/engine/constraints.py:374
+#: heat/engine/constraints.py:393
#, python-format
msgid "Allowed values: %s"
msgstr ""
-#: heat/engine/constraints.py:407
+#: heat/engine/constraints.py:431
#, python-format
msgid "Value must match pattern: %s"
msgstr ""
@@ -1068,12 +1088,12 @@ msgstr ""
msgid "Registering %(path)s -> %(value)s"
msgstr ""
-#: heat/engine/environment.py:279 heat/tests/test_resource.py:77
+#: heat/engine/environment.py:279 heat/tests/test_resource.py:86
#, python-format
msgid "Resource \"%s\" has no type"
msgstr ""
-#: heat/engine/environment.py:282 heat/tests/test_resource.py:85
+#: heat/engine/environment.py:282 heat/tests/test_resource.py:94
#, python-format
msgid "Non-empty resource type is required for resource \"%s\""
msgstr ""
@@ -1092,174 +1112,193 @@ msgstr ""
msgid "Duplicating event"
msgstr ""
-#: heat/engine/hot.py:57 heat/engine/template.py:71
+#: heat/engine/hot.py:61 heat/engine/template.py:73
#, python-format
msgid "\"%s\" is not a valid template section"
msgstr ""
-#: heat/engine/hot.py:228
+#: heat/engine/hot.py:64 heat/engine/template.py:76
+#, python-format
+msgid "Section %s can not be accessed directly."
+msgstr ""
+
+#: heat/engine/hot.py:223
msgid "Arguments to \"str_replace\" must be adictionary or a list"
msgstr ""
-#: heat/engine/hot.py:245
+#: heat/engine/hot.py:240
#, python-format
msgid "\"str_replace\" syntax should be %s"
msgstr ""
-#: heat/engine/hot.py:248
+#: heat/engine/hot.py:243
msgid "\"template\" parameter must be a string"
msgstr ""
-#: heat/engine/hot.py:251
+#: heat/engine/hot.py:246
msgid "\"params\" parameter must be a dictionary"
msgstr ""
-#: heat/engine/parameters.py:154
+#: heat/engine/hot.py:347 heat/engine/parameters.py:415
+msgid "Stack ID"
+msgstr ""
+
+#: heat/engine/hot.py:352 heat/engine/parameters.py:419
+msgid "Stack Name"
+msgstr ""
+
+#: heat/engine/parameters.py:73
+#, python-format
+msgid "Default must be a comma-delimited list string: %s"
+msgstr ""
+
+#: heat/engine/parameters.py:161
#, python-format
msgid "Invalid Parameter type \"%s\""
msgstr ""
-#: heat/engine/parameters.py:183
+#: heat/engine/parameters.py:190
#, python-format
msgid "Missing parameter %s"
msgstr ""
-#: heat/engine/parameters.py:254
+#: heat/engine/parameters.py:265
#, python-format
msgid "Value must be a comma-delimited list string: %s"
msgstr ""
-#: heat/engine/parameters.py:290
+#: heat/engine/parameters.py:301
#, python-format
msgid "Value must be valid JSON: %s"
msgstr ""
-#: heat/engine/parser.py:81
+#: heat/engine/parser.py:78
#, python-format
msgid ""
"Invalid stack name %s must contain only alphanumeric or \"_-.\" "
"characters, must start with alpha"
msgstr ""
-#: heat/engine/parser.py:167
+#: heat/engine/parser.py:162
msgid "Unable to set parameters StackId identifier"
msgstr ""
-#: heat/engine/parser.py:188
+#: heat/engine/parser.py:181
#, python-format
msgid "No stack exists with id \"%s\""
msgstr ""
-#: heat/engine/parser.py:311 heat/engine/parser.py:312
+#: heat/engine/parser.py:326 heat/engine/parser.py:327
#, python-format
msgid "Duplicate names %s"
msgstr ""
-#: heat/engine/parser.py:339 heat/engine/resource.py:760
+#: heat/engine/parser.py:354 heat/engine/resource.py:825
#, python-format
msgid "Invalid action %s"
msgstr ""
-#: heat/engine/parser.py:342 heat/engine/resource.py:763
+#: heat/engine/parser.py:357 heat/engine/resource.py:828
#, python-format
msgid "Invalid status %s"
msgstr ""
-#: heat/engine/parser.py:434
+#: heat/engine/parser.py:459
msgid "Loaded existing backup stack"
msgstr ""
-#: heat/engine/parser.py:442
+#: heat/engine/parser.py:467
msgid "Created new backup stack"
msgstr ""
-#: heat/engine/parser.py:465
+#: heat/engine/parser.py:506
#, python-format
msgid "Unexpected action %s passed to update!"
msgstr ""
-#: heat/engine/parser.py:473
+#: heat/engine/parser.py:514
#, python-format
msgid "Starting update rollback for %s"
msgstr ""
-#: heat/engine/parser.py:522
+#: heat/engine/parser.py:563
msgid "Deleting backup stack"
msgstr ""
-#: heat/engine/parser.py:545
+#: heat/engine/parser.py:586
#, python-format
msgid "Unexpected action %s passed to delete!"
msgstr ""
-#: heat/engine/parser.py:644
+#: heat/engine/parser.py:685
#, python-format
msgid "delete: %s"
msgstr ""
-#: heat/engine/parser.py:652
+#: heat/engine/parser.py:693
msgid "create"
msgstr ""
-#: heat/engine/properties.py:73
+#: heat/engine/properties.py:72
#, python-format
msgid "Unknown key(s) %s"
msgstr ""
-#: heat/engine/properties.py:94
+#: heat/engine/properties.py:93
#, python-format
msgid "No %s specified"
msgstr ""
-#: heat/engine/properties.py:103
+#: heat/engine/properties.py:102
#, python-format
-msgid "%(schema)s supplied for for %(type)s %(data)s"
+msgid "%(schema)s supplied for %(type)s %(data)s"
msgstr ""
-#: heat/engine/properties.py:240
-msgid "value is not an integer"
+#: heat/engine/properties.py:193
+#, python-format
+msgid "Value '%s' is not an integer"
msgstr ""
-#: heat/engine/properties.py:252
+#: heat/engine/properties.py:206
msgid "Value must be a string"
msgstr ""
-#: heat/engine/properties.py:270
+#: heat/engine/properties.py:224
#, python-format
msgid "\"%s\" is not a map"
msgstr ""
-#: heat/engine/properties.py:279
+#: heat/engine/properties.py:233
#, python-format
msgid "\"%s\" is not a list"
msgstr ""
-#: heat/engine/properties.py:291
+#: heat/engine/properties.py:245
#, python-format
msgid "\"%s\" is not a valid boolean"
msgstr ""
-#: heat/engine/properties.py:347
+#: heat/engine/properties.py:301
#, python-format
msgid "Property error : %s"
msgstr ""
-#: heat/engine/properties.py:352
+#: heat/engine/properties.py:306
#, python-format
msgid "Property %s not implemented yet"
msgstr ""
-#: heat/engine/properties.py:357
+#: heat/engine/properties.py:311
#, python-format
msgid "Unknown Property %s"
msgstr ""
-#: heat/engine/properties.py:362
+#: heat/engine/properties.py:316
#, python-format
msgid "Invalid Property %s"
msgstr ""
-#: heat/engine/properties.py:378
+#: heat/engine/properties.py:332
#, python-format
msgid "Property %s not assigned"
msgstr ""
@@ -1274,103 +1313,107 @@ msgstr ""
msgid "Specified status is invalid, defaulting to %s"
msgstr ""
-#: heat/engine/resource.py:427
+#: heat/engine/resource.py:448
msgid "Error marking resource as failed"
msgstr ""
-#: heat/engine/resource.py:438
+#: heat/engine/resource.py:459
#, python-format
msgid "State %s invalid for create"
msgstr ""
-#: heat/engine/resource.py:484
+#: heat/engine/resource.py:502
+msgid "Resource ID was not provided."
+msgstr ""
+
+#: heat/engine/resource.py:548
msgid "Resource update already requested"
msgstr ""
-#: heat/engine/resource.py:506
+#: heat/engine/resource.py:570
#, python-format
msgid "Resource %s update requires replacement"
msgstr ""
-#: heat/engine/resource.py:526
+#: heat/engine/resource.py:590
#, python-format
msgid "State %s invalid for suspend"
msgstr ""
-#: heat/engine/resource.py:530
+#: heat/engine/resource.py:594
#, python-format
msgid "suspending %s"
msgstr ""
-#: heat/engine/resource.py:542
+#: heat/engine/resource.py:606
#, python-format
msgid "State %s invalid for resume"
msgstr ""
-#: heat/engine/resource.py:546
+#: heat/engine/resource.py:610
#, python-format
msgid "resuming %s"
msgstr ""
-#: heat/engine/resource.py:582
+#: heat/engine/resource.py:646
msgid "limit cannot be less than 4"
msgstr ""
-#: heat/engine/resource.py:588
+#: heat/engine/resource.py:652
#, python-format
msgid "Validating %s"
msgstr ""
-#: heat/engine/resource.py:597
+#: heat/engine/resource.py:661
#, python-format
msgid "Invalid DeletionPolicy %s"
msgstr ""
-#: heat/engine/resource.py:601
+#: heat/engine/resource.py:665
msgid "Snapshot DeletionPolicy not supported"
msgstr ""
-#: heat/engine/resource.py:619
+#: heat/engine/resource.py:683
#, python-format
msgid "deleting %s"
msgstr ""
-#: heat/engine/resource.py:641
+#: heat/engine/resource.py:705
#, python-format
msgid "Delete %s"
msgstr ""
-#: heat/engine/resource.py:651
+#: heat/engine/resource.py:715
msgid "Error marking resource deletion failed"
msgstr ""
-#: heat/engine/resource.py:682
+#: heat/engine/resource.py:746
#, python-format
msgid "db error %s"
msgstr ""
-#: heat/engine/resource.py:703 heat/engine/resource.py:714
-#: heat/engine/resource.py:732
+#: heat/engine/resource.py:767 heat/engine/resource.py:778
+#: heat/engine/resource.py:796
#, python-format
msgid "DB error %s"
msgstr ""
-#: heat/engine/resource.py:835
+#: heat/engine/resource.py:900
#, python-format
msgid "Cannot signal resource during %s"
msgstr ""
-#: heat/engine/resource.py:839
+#: heat/engine/resource.py:904
#, python-format
msgid "Resource %s is not able to receive a signal"
msgstr ""
-#: heat/engine/resource.py:846
+#: heat/engine/resource.py:911
#, python-format
msgid "signal %(name)s : %(msg)s"
msgstr ""
-#: heat/engine/resource.py:859
+#: heat/engine/resource.py:924
#, python-format
msgid "Resource %s does not implement metadata update"
msgstr ""
@@ -1380,196 +1423,184 @@ msgstr ""
msgid "%s Timed out"
msgstr ""
-#: heat/engine/scheduler.py:108
+#: heat/engine/scheduler.py:131
#, python-format
msgid "%s sleeping"
msgstr ""
-#: heat/engine/scheduler.py:131
+#: heat/engine/scheduler.py:154
#, python-format
msgid "%s starting"
msgstr ""
-#: heat/engine/scheduler.py:143
+#: heat/engine/scheduler.py:166
#, python-format
msgid "%s done (not resumable)"
msgstr ""
-#: heat/engine/scheduler.py:154
+#: heat/engine/scheduler.py:177
#, python-format
msgid "%s timed out"
msgstr ""
-#: heat/engine/scheduler.py:164
+#: heat/engine/scheduler.py:187
#, python-format
msgid "%s running"
msgstr ""
-#: heat/engine/scheduler.py:170
+#: heat/engine/scheduler.py:193
#, python-format
msgid "%s complete"
msgstr ""
-#: heat/engine/scheduler.py:187
+#: heat/engine/scheduler.py:210
#, python-format
msgid "%s cancelled"
msgstr ""
-#: heat/engine/service.py:96
+#: heat/engine/service.py:184
#, python-format
msgid "Starting listener for engine %s"
msgstr ""
-#: heat/engine/service.py:323 heat/engine/service.py:381
+#: heat/engine/service.py:354 heat/engine/service.py:418
#, python-format
msgid "template is %s"
msgstr ""
-#: heat/engine/service.py:332
+#: heat/engine/service.py:368
#, python-format
msgid "Stack create failed, status %s"
msgstr ""
-#: heat/engine/service.py:339
+#: heat/engine/service.py:375
#, python-format
msgid ""
"You have reached the maximum stacks per tenant, %d. Please delete some "
"stacks."
msgstr ""
-#: heat/engine/service.py:389
+#: heat/engine/service.py:426
msgid "Updating a stack when it is suspended"
msgstr ""
-#: heat/engine/service.py:393
+#: heat/engine/service.py:430
msgid "Updating a stack when another action is in progress"
msgstr ""
-#: heat/engine/service.py:425
+#: heat/engine/service.py:465
msgid "validate_template"
msgstr ""
-#: heat/engine/service.py:427
+#: heat/engine/service.py:467
msgid "No Template provided."
msgstr ""
-#: heat/engine/service.py:507
+#: heat/engine/service.py:546
#, python-format
msgid "deleting stack %s"
msgstr ""
-#: heat/engine/service.py:522
+#: heat/engine/service.py:562
#, python-format
msgid "abandoning stack %s"
msgstr ""
-#: heat/engine/service.py:629
-msgid "access_key % not found!"
-msgstr ""
-
-#: heat/engine/service.py:639
-msgid "Cannot access resource from wrong stack!"
-msgstr ""
-
-#: heat/engine/service.py:641
-msgid "Cannot access resource, invalid credentials!"
-msgstr ""
-
-#: heat/engine/service.py:652
+#: heat/engine/service.py:677
#, python-format
msgid "Access denied to resource %s"
msgstr ""
-#: heat/engine/service.py:733
+#: heat/engine/service.py:758
#, python-format
msgid "suspending stack %s"
msgstr ""
-#: heat/engine/service.py:747
+#: heat/engine/service.py:773
#, python-format
msgid "resuming stack %s"
msgstr ""
-#: heat/engine/service.py:801
+#: heat/engine/service.py:828
#, python-format
msgid "Periodic watcher task for stack %s"
msgstr ""
-#: heat/engine/service.py:805
+#: heat/engine/service.py:832
#, python-format
msgid "Unable to retrieve stack %s for periodic task"
msgstr ""
-#: heat/engine/service.py:819
+#: heat/engine/service.py:846
#, python-format
msgid "periodic_task db error (%(msg)s) %(ex)s"
msgstr ""
-#: heat/engine/service.py:887
+#: heat/engine/service.py:914
#, python-format
msgid "show_watch (all) db error %s"
msgstr ""
-#: heat/engine/service.py:910
+#: heat/engine/service.py:937
msgid "Filtering by namespace/metric not yet supported"
msgstr ""
-#: heat/engine/service.py:916
+#: heat/engine/service.py:943
#, python-format
msgid "show_metric (all) db error %s"
msgstr ""
-#: heat/engine/signal_responder.py:55 heat/engine/resources/user.py:214
+#: heat/engine/signal_responder.py:56 heat/engine/resources/user.py:218
#, python-format
msgid "Error creating ec2 keypair for user %s"
msgstr ""
-#: heat/engine/signal_responder.py:96
+#: heat/engine/signal_responder.py:112
msgid "Cannot generate signed url, no stored access/secret key"
msgstr ""
-#: heat/engine/stack_lock.py:52
+#: heat/engine/stack_lock.py:62
#, python-format
msgid "Engine %(engine)s acquired lock on stack %(stack)s"
msgstr ""
-#: heat/engine/stack_lock.py:58
+#: heat/engine/stack_lock.py:69
#, python-format
msgid "Lock on stack %(stack)s is owned by engine %(engine)s"
msgstr ""
-#: heat/engine/stack_lock.py:64
+#: heat/engine/stack_lock.py:75
#, python-format
msgid ""
"Stale lock detected on stack %(stack)s. Engine %(engine)s will attempt "
"to steal the lock"
msgstr ""
-#: heat/engine/stack_lock.py:72
+#: heat/engine/stack_lock.py:83
#, python-format
msgid "Engine %(engine)s successfully stole the lock on stack %(stack)s"
msgstr ""
-#: heat/engine/stack_lock.py:78
+#: heat/engine/stack_lock.py:90
#, python-format
msgid ""
"The lock on stack %(stack)s was released while engine %(engine)s was "
"stealing it. Trying again"
msgstr ""
-#: heat/engine/stack_lock.py:85
+#: heat/engine/stack_lock.py:97
#, python-format
msgid ""
"Failed to steal lock on stack %(stack)s. Engine %(engine)s stole the lock"
" first"
msgstr ""
-#: heat/engine/stack_lock.py:98
+#: heat/engine/stack_lock.py:110
#, python-format
msgid "Lock was already released on stack %s!"
msgstr ""
-#: heat/engine/stack_lock.py:101
+#: heat/engine/stack_lock.py:113
#, python-format
msgid "Engine %(engine)s released lock on stack %(stack)s"
msgstr ""
@@ -1583,110 +1614,110 @@ msgstr ""
msgid "Recursion depth exceeds %d."
msgstr ""
-#: heat/engine/stack_resource.py:132
+#: heat/engine/stack_resource.py:137
#, python-format
msgid "Cannot update %s, stack not created"
msgstr ""
-#: heat/engine/stack_resource.py:171
+#: heat/engine/stack_resource.py:177
#, python-format
msgid "Nested stack update failed: %s"
msgstr ""
-#: heat/engine/stack_resource.py:182
+#: heat/engine/stack_resource.py:188
msgid "Stack not found to delete"
msgstr ""
-#: heat/engine/stack_resource.py:205
+#: heat/engine/stack_resource.py:211
#, python-format
msgid "Cannot suspend %s, stack not created"
msgstr ""
-#: heat/engine/stack_resource.py:227
+#: heat/engine/stack_resource.py:233
#, python-format
msgid "Cannot resume %s, stack not created"
msgstr ""
-#: heat/engine/template.py:190 heat/engine/template.py:294
+#: heat/engine/template.py:197 heat/engine/template.py:301
msgid "Arguments to \"Fn::Join\" must be a list"
msgstr ""
-#: heat/engine/template.py:195 heat/engine/template.py:300
+#: heat/engine/template.py:202 heat/engine/template.py:307
#, python-format
msgid "Incorrect arguments to \"Fn::Join\" should be: %s"
msgstr ""
-#: heat/engine/template.py:200 heat/engine/template.py:305
+#: heat/engine/template.py:207 heat/engine/template.py:312
msgid "Arguments to \"Fn::Join\" not fully resolved"
msgstr ""
-#: heat/engine/template.py:240
+#: heat/engine/template.py:247
msgid "Arguments to \"Fn::Select\" must be a list"
msgstr ""
-#: heat/engine/template.py:245
+#: heat/engine/template.py:252
#, python-format
msgid "Incorrect arguments to \"Fn::Select\" should be: %s"
msgstr ""
-#: heat/engine/template.py:250
+#: heat/engine/template.py:257
#, python-format
msgid "Index to \"Fn::Select\" should be either a string or an integer value: %s"
msgstr ""
-#: heat/engine/template.py:269
+#: heat/engine/template.py:276
#, python-format
msgid "\"Fn::Select\" %s"
msgstr ""
-#: heat/engine/template.py:281
+#: heat/engine/template.py:288
msgid "Arguments to \"Fn::Select\" not fully resolved"
msgstr ""
-#: heat/engine/template.py:330
+#: heat/engine/template.py:337
msgid "Arguments to \"Fn::Split\" must be a list"
msgstr ""
-#: heat/engine/template.py:336 heat/engine/template.py:339
+#: heat/engine/template.py:343 heat/engine/template.py:346
#, python-format
msgid "Incorrect arguments to \"Fn::Split\" should be: %s"
msgstr ""
-#: heat/engine/template.py:360
+#: heat/engine/template.py:367
msgid "Arguments to \"Fn::Replace\" must be a list"
msgstr ""
-#: heat/engine/template.py:368
+#: heat/engine/template.py:375
#, python-format
msgid "Incorrect arguments to \"Fn::Replace\" should be: %s"
msgstr ""
-#: heat/engine/template.py:374 heat/engine/template.py:377
+#: heat/engine/template.py:381 heat/engine/template.py:384
msgid "Arguments to \"Fn::Replace\" not fully resolved"
msgstr ""
-#: heat/engine/template.py:386
+#: heat/engine/template.py:393
#, python-format
msgid "\"Fn::Replace\" value(%(value)s) for \"%(key)s\" is not a string"
msgstr ""
-#: heat/engine/template.py:402
+#: heat/engine/template.py:409
msgid "Arguments to \"Fn::Base64\" not fully resolved"
msgstr ""
-#: heat/engine/template.py:427 heat/engine/template.py:429
-#: heat/engine/template.py:431 heat/engine/template.py:433
-#: heat/engine/template.py:435
+#: heat/engine/template.py:434 heat/engine/template.py:436
+#: heat/engine/template.py:438 heat/engine/template.py:440
+#: heat/engine/template.py:442
#, python-format
msgid "Wrong Arguments try: \"%s\""
msgstr ""
-#: heat/engine/template.py:459
+#: heat/engine/template.py:466
#, python-format
msgid "Incorrect arguments to \"Fn::ResourceFacade\" should be one of: %s"
msgstr ""
-#: heat/engine/template.py:466
+#: heat/engine/template.py:473
#, python-format
msgid "\"Fn::ResourceFacade\" \"%s\" is not specified in parent resource"
msgstr ""
@@ -1726,62 +1757,67 @@ msgstr ""
msgid "ignoring %s"
msgstr ""
-#: heat/engine/watchrule.py:255
+#: heat/engine/watchrule.py:251
+#, python-format
+msgid "WATCH: stack:%(stack)s, watch_name:%(watch_name)s, new_state:%(new_state)s"
+msgstr ""
+
+#: heat/engine/watchrule.py:257
#, python-format
msgid "no action for new state %s"
msgstr ""
-#: heat/engine/watchrule.py:265
+#: heat/engine/watchrule.py:267
#, python-format
msgid "Could not process watch state %s for stack"
msgstr ""
-#: heat/engine/watchrule.py:286
+#: heat/engine/watchrule.py:288
#, python-format
msgid "new sample:%(k)s data:%(sample)s"
msgstr ""
-#: heat/engine/watchrule.py:299
+#: heat/engine/watchrule.py:301
#, python-format
msgid "Ignoring metric data for %s, SUSPENDED state"
msgstr ""
-#: heat/engine/watchrule.py:309
+#: heat/engine/watchrule.py:311
#, python-format
msgid "Ignoring metric data (only accept %(metric)s) : %(data)s"
msgstr ""
-#: heat/engine/watchrule.py:319
+#: heat/engine/watchrule.py:321
#, python-format
msgid "new watch:%(name)s data:%(data)s"
msgstr ""
-#: heat/engine/watchrule.py:327
+#: heat/engine/watchrule.py:329
#, python-format
msgid "Invalid watch state %s"
msgstr ""
-#: heat/engine/watchrule.py:339
+#: heat/engine/watchrule.py:341
#, python-format
msgid "Unknown watch state %s"
msgstr ""
-#: heat/engine/watchrule.py:345
+#: heat/engine/watchrule.py:347
#, python-format
msgid "Overriding state %(self_state)s for watch %(name)s with %(state)s"
msgstr ""
-#: heat/engine/watchrule.py:350
+#: heat/engine/watchrule.py:352
#, python-format
msgid "Unable to override state %(state)s for watch %(name)s"
msgstr ""
-#: heat/engine/resources/__init__.py:41
+#: heat/engine/resources/__init__.py:42
#, python-format
msgid "Failed to load resources from %s"
msgstr ""
-#: heat/engine/resources/__init__.py:67
+#: heat/engine/resources/__init__.py:68
#, python-format
msgid "Failed to read %s"
msgstr ""
@@ -1793,179 +1829,207 @@ msgstr ""
#: heat/engine/resources/__init__.py:91
#, python-format
-msgid "Failed to parse %(dir)s/%(name)s"
+msgid "Failed to parse %(file_path)s"
msgstr ""
#: heat/engine/resources/__init__.py:95
#, python-format
-msgid "Failed to read %(dir)s/%(name)s"
-msgstr ""
-
-#: heat/engine/resources/autoscaling.py:89
-#: heat/engine/resources/autoscaling.py:433
-#: heat/engine/resources/autoscaling.py:466
-#: heat/engine/resources/autoscaling.py:471
-#: heat/engine/resources/autoscaling.py:704
-#: heat/engine/resources/autoscaling.py:709
-#: heat/engine/resources/autoscaling.py:714
-#: heat/engine/resources/instance.py:157 heat/engine/resources/instance.py:162
-#: heat/engine/resources/instance.py:167 heat/engine/resources/instance.py:172
-#: heat/engine/resources/instance.py:177 heat/engine/resources/instance.py:182
-#: heat/engine/resources/instance.py:199 heat/engine/resources/instance.py:243
-#: heat/engine/resources/loadbalancer.py:304
-#: heat/engine/resources/loadbalancer.py:309
-#: heat/engine/resources/loadbalancer.py:318
-#: heat/engine/resources/loadbalancer.py:323
-#: heat/engine/resources/loadbalancer.py:328
-#: heat/engine/resources/loadbalancer.py:333 heat/engine/resources/user.py:49
-#: heat/engine/resources/user.py:53 heat/engine/resources/user.py:170
-#: heat/engine/resources/user.py:180
+msgid "Failed to read %(file_path)s"
+msgstr ""
+
+#: heat/engine/resources/autoscaling.py:93
+#: heat/engine/resources/autoscaling.py:439
+#: heat/engine/resources/autoscaling.py:472
+#: heat/engine/resources/autoscaling.py:477
+#: heat/engine/resources/autoscaling.py:756
+#: heat/engine/resources/autoscaling.py:761
+#: heat/engine/resources/autoscaling.py:766
+#: heat/engine/resources/instance.py:161 heat/engine/resources/instance.py:166
+#: heat/engine/resources/instance.py:171 heat/engine/resources/instance.py:176
+#: heat/engine/resources/instance.py:181 heat/engine/resources/instance.py:186
+#: heat/engine/resources/instance.py:203 heat/engine/resources/instance.py:247
+#: heat/engine/resources/loadbalancer.py:312
+#: heat/engine/resources/loadbalancer.py:317
+#: heat/engine/resources/loadbalancer.py:326
+#: heat/engine/resources/loadbalancer.py:331
+#: heat/engine/resources/loadbalancer.py:336
+#: heat/engine/resources/loadbalancer.py:341 heat/engine/resources/user.py:51
+#: heat/engine/resources/user.py:55 heat/engine/resources/user.py:172
+#: heat/engine/resources/user.py:182
msgid "Not Implemented."
msgstr ""
-#: heat/engine/resources/autoscaling.py:94
-#: heat/engine/resources/autoscaling.py:438
+#: heat/engine/resources/autoscaling.py:98
+#: heat/engine/resources/autoscaling.py:444
msgid "Name of LaunchConfiguration resource."
msgstr ""
-#: heat/engine/resources/autoscaling.py:100
+#: heat/engine/resources/autoscaling.py:104
msgid "Desired number of instances."
msgstr ""
-#: heat/engine/resources/autoscaling.py:106
-#: heat/engine/resources/autoscaling.py:479
+#: heat/engine/resources/autoscaling.py:110
+#: heat/engine/resources/autoscaling.py:485
msgid "List of LoadBalancer resources."
msgstr ""
-#: heat/engine/resources/autoscaling.py:110
-#: heat/engine/resources/autoscaling.py:487
+#: heat/engine/resources/autoscaling.py:114
+#: heat/engine/resources/autoscaling.py:493
msgid "Tags to attach to this group."
msgstr ""
-#: heat/engine/resources/autoscaling.py:130
+#: heat/engine/resources/autoscaling.py:134
msgid "A comma-delimited list of server ip addresses. (Heat extension)."
msgstr ""
-#: heat/engine/resources/autoscaling.py:444
+#: heat/engine/resources/autoscaling.py:450
msgid "Maximum number of instances in the group."
msgstr ""
-#: heat/engine/resources/autoscaling.py:450
+#: heat/engine/resources/autoscaling.py:456
msgid "Minimum number of instances in the group."
msgstr ""
-#: heat/engine/resources/autoscaling.py:456
-#: heat/engine/resources/autoscaling.py:774
+#: heat/engine/resources/autoscaling.py:462
+#: heat/engine/resources/autoscaling.py:826
msgid "Cooldown period, in seconds."
msgstr ""
-#: heat/engine/resources/autoscaling.py:461
+#: heat/engine/resources/autoscaling.py:467
msgid "Desired initial number of instances."
msgstr ""
-#: heat/engine/resources/autoscaling.py:483
+#: heat/engine/resources/autoscaling.py:489
msgid "List of VPC subnet identifiers."
msgstr ""
-#: heat/engine/resources/autoscaling.py:587
+#: heat/engine/resources/autoscaling.py:593
#, python-format
msgid "%(name)s NOT performing scaling adjustment, cooldown %(cooldown)s"
msgstr ""
-#: heat/engine/resources/autoscaling.py:614
+#: heat/engine/resources/autoscaling.py:620
#, python-format
msgid "truncating growth to %s"
msgstr ""
-#: heat/engine/resources/autoscaling.py:617
+#: heat/engine/resources/autoscaling.py:623
#, python-format
msgid "can not exceed %s"
msgstr ""
-#: heat/engine/resources/autoscaling.py:621
+#: heat/engine/resources/autoscaling.py:627
#, python-format
msgid "truncating shrinkage to %s"
msgstr ""
-#: heat/engine/resources/autoscaling.py:624
+#: heat/engine/resources/autoscaling.py:630
#, python-format
msgid "can not be less than %s"
msgstr ""
-#: heat/engine/resources/autoscaling.py:628
+#: heat/engine/resources/autoscaling.py:634
#, python-format
msgid "no change in capacity %d"
msgstr ""
+#: heat/engine/resources/autoscaling.py:644
+#, python-format
+msgid "Start resizing the group %(group)s"
+msgstr ""
+
#: heat/engine/resources/autoscaling.py:659
+msgid "Failed sending error notification"
+msgstr ""
+
+#: heat/engine/resources/autoscaling.py:664
+#, python-format
+msgid "End resizing the group %(group)s"
+msgstr ""
+
+#: heat/engine/resources/autoscaling.py:692
+msgid "MinSize can not be greater than MaxSize"
+msgstr ""
+
+#: heat/engine/resources/autoscaling.py:696
+msgid "The size of AutoScalingGroup can not be less than zero"
+msgstr ""
+
+#: heat/engine/resources/autoscaling.py:702
+msgid "DesiredCapacity must be between MinSize and MaxSize"
+msgstr ""
+
+#: heat/engine/resources/autoscaling.py:711
msgid "Anything other than one VPCZoneIdentifier"
msgstr ""
-#: heat/engine/resources/autoscaling.py:682
-#: heat/engine/resources/instance.py:136
+#: heat/engine/resources/autoscaling.py:734
+#: heat/engine/resources/instance.py:140
msgid "Glance image ID or name."
msgstr ""
-#: heat/engine/resources/autoscaling.py:687
-#: heat/engine/resources/instance.py:143
+#: heat/engine/resources/autoscaling.py:739
+#: heat/engine/resources/instance.py:147
msgid "Nova instance type (flavor)."
msgstr ""
-#: heat/engine/resources/autoscaling.py:692
-#: heat/engine/resources/instance.py:149
+#: heat/engine/resources/autoscaling.py:744
+#: heat/engine/resources/instance.py:153
msgid "Optional Nova keypair name."
msgstr ""
-#: heat/engine/resources/autoscaling.py:696
-#: heat/engine/resources/instance.py:251
+#: heat/engine/resources/autoscaling.py:748
+#: heat/engine/resources/instance.py:255
msgid "User data to pass to instance."
msgstr ""
-#: heat/engine/resources/autoscaling.py:700
-#: heat/engine/resources/instance.py:187
+#: heat/engine/resources/autoscaling.py:752
+#: heat/engine/resources/instance.py:191
msgid "Security group names to assign."
msgstr ""
-#: heat/engine/resources/autoscaling.py:719
-#: heat/engine/resources/instance.py:226
+#: heat/engine/resources/autoscaling.py:771
+#: heat/engine/resources/instance.py:230
msgid "Scheduler hints to pass to Nova (Heat extension)."
msgstr ""
-#: heat/engine/resources/autoscaling.py:752
+#: heat/engine/resources/autoscaling.py:804
msgid "AutoScaling group name to apply policy to."
msgstr ""
-#: heat/engine/resources/autoscaling.py:757
+#: heat/engine/resources/autoscaling.py:809
msgid "Size of adjustment."
msgstr ""
-#: heat/engine/resources/autoscaling.py:763
+#: heat/engine/resources/autoscaling.py:815
msgid "Type of adjustment (absolute or percentage)."
msgstr ""
-#: heat/engine/resources/autoscaling.py:782
+#: heat/engine/resources/autoscaling.py:834
msgid "A signed url to handle the alarm. (Heat extension)."
msgstr ""
-#: heat/engine/resources/autoscaling.py:812
-#: heat/engine/resources/instance.py:71
+#: heat/engine/resources/autoscaling.py:868
+#: heat/engine/resources/instance.py:75
#, python-format
msgid "%(name)s Alarm, new state %(state)s"
msgstr ""
-#: heat/engine/resources/autoscaling.py:818
+#: heat/engine/resources/autoscaling.py:874
#, python-format
msgid "%(name)s NOT performing scaling action, cooldown %(cooldown)s"
msgstr ""
-#: heat/engine/resources/autoscaling.py:827
+#: heat/engine/resources/autoscaling.py:883
#, python-format
msgid "Alarm %(alarm)s could not find scaling group named \"%(group)s\""
msgstr ""
-#: heat/engine/resources/autoscaling.py:832
+#: heat/engine/resources/autoscaling.py:888
#, python-format
-msgid "%(name)s Alarm, adjusting Group %(group)s by %(filter)s"
+msgid ""
+"%(name)s Alarm, adjusting Group %(group)s with id %(asgn_id)s by "
+"%(filter)s"
msgstr ""
#: heat/engine/resources/cloud_watch.py:44
@@ -1973,12 +2037,12 @@ msgid "Operator used to compare the specified Statistic with Threshold."
msgstr ""
#: heat/engine/resources/cloud_watch.py:56
-#: heat/engine/resources/ceilometer/alarm.py:101
+#: heat/engine/resources/ceilometer/alarm.py:35
msgid "Description for the alarm."
msgstr ""
#: heat/engine/resources/cloud_watch.py:61
-#: heat/engine/resources/ceilometer/alarm.py:50
+#: heat/engine/resources/ceilometer/alarm.py:117
msgid "Number of periods to evaluate over."
msgstr ""
@@ -1991,7 +2055,7 @@ msgid "Namespace for the metric."
msgstr ""
#: heat/engine/resources/cloud_watch.py:74
-#: heat/engine/resources/ceilometer/alarm.py:61
+#: heat/engine/resources/ceilometer/alarm.py:127
msgid "Period (seconds) to evaluate over."
msgstr ""
@@ -2018,7 +2082,7 @@ msgid "A list of actions to execute when state transitions to insufficient-data.
msgstr ""
#: heat/engine/resources/cloud_watch.py:109
-#: heat/engine/resources/ceilometer/alarm.py:77
+#: heat/engine/resources/ceilometer/alarm.py:141
msgid "Threshold to evaluate against."
msgstr ""
@@ -2093,113 +2157,113 @@ msgstr ""
msgid "A signed url to handle the alarm (Heat extension)."
msgstr ""
-#: heat/engine/resources/instance.py:79
+#: heat/engine/resources/instance.py:83
#, python-format
msgid "%(name)s Alarm, can not find instance %(instance)s"
msgstr ""
-#: heat/engine/resources/instance.py:84
+#: heat/engine/resources/instance.py:88
#, python-format
msgid "%(name)s Alarm, restarting resource: %(victim)s"
msgstr ""
-#: heat/engine/resources/instance.py:153
+#: heat/engine/resources/instance.py:157
msgid "Availability zone to launch the instance in."
msgstr ""
-#: heat/engine/resources/instance.py:191
+#: heat/engine/resources/instance.py:195
msgid "Security group IDs to assign."
msgstr ""
-#: heat/engine/resources/instance.py:195
+#: heat/engine/resources/instance.py:199
msgid "Network interfaces to associate with instance."
msgstr ""
-#: heat/engine/resources/instance.py:204
+#: heat/engine/resources/instance.py:208
msgid "Subnet ID to launch instance in."
msgstr ""
-#: heat/engine/resources/instance.py:208
+#: heat/engine/resources/instance.py:212
msgid "Tags to attach to instance."
msgstr ""
-#: heat/engine/resources/instance.py:255
+#: heat/engine/resources/instance.py:259
msgid "Volumes to attach to instance."
msgstr ""
-#: heat/engine/resources/instance.py:262 heat/engine/resources/volume.py:324
+#: heat/engine/resources/instance.py:266 heat/engine/resources/volume.py:320
msgid ""
"The device where the volume is exposed on the instance. This assignment "
"may not be honored and it is advised that the path /dev/disk/by-"
"id/virtio-<VolumeId> be used instead."
msgstr ""
-#: heat/engine/resources/instance.py:271 heat/engine/resources/volume.py:319
-#: heat/engine/resources/volume.py:487
+#: heat/engine/resources/instance.py:275 heat/engine/resources/volume.py:315
+#: heat/engine/resources/volume.py:486
msgid "The ID of the volume to be attached."
msgstr ""
-#: heat/engine/resources/instance.py:279
+#: heat/engine/resources/instance.py:283
msgid "The Availability Zone where the specified instance is launched."
msgstr ""
-#: heat/engine/resources/instance.py:282
+#: heat/engine/resources/instance.py:286
msgid "Private DNS name of the specified instance."
msgstr ""
-#: heat/engine/resources/instance.py:284
+#: heat/engine/resources/instance.py:288
msgid "Public DNS name of the specified instance."
msgstr ""
-#: heat/engine/resources/instance.py:286
+#: heat/engine/resources/instance.py:290
msgid "Private IP address of the specified instance."
msgstr ""
-#: heat/engine/resources/instance.py:288
+#: heat/engine/resources/instance.py:292
msgid "Public IP address of the specified instance."
msgstr ""
-#: heat/engine/resources/instance.py:473
+#: heat/engine/resources/instance.py:484
#, python-format
msgid "Creation of server %(server)s failed: %(message)s (%(code)s)"
msgstr ""
-#: heat/engine/resources/instance.py:480 heat/engine/resources/server.py:301
+#: heat/engine/resources/instance.py:491 heat/engine/resources/server.py:350
#, python-format
msgid "Creation of server %(server)s failed with unknown status: %(status)s"
msgstr ""
-#: heat/engine/resources/instance.py:570
+#: heat/engine/resources/instance.py:579
#, python-format
msgid "Deletion of server %s failed."
msgstr ""
-#: heat/engine/resources/instance.py:618 heat/engine/resources/server.py:521
+#: heat/engine/resources/instance.py:627 heat/engine/resources/server.py:595
#, python-format
msgid "Cannot suspend %s, resource_id not set"
msgstr ""
-#: heat/engine/resources/instance.py:624 heat/engine/resources/instance.py:678
+#: heat/engine/resources/instance.py:633 heat/engine/resources/instance.py:687
#, python-format
msgid "Failed to find instance %s"
msgstr ""
-#: heat/engine/resources/instance.py:627
+#: heat/engine/resources/instance.py:636
#, python-format
msgid "suspending instance %s"
msgstr ""
-#: heat/engine/resources/instance.py:655
+#: heat/engine/resources/instance.py:664
#, python-format
msgid " nova reported unexpected instance[%(instance)s] status[%(status)s]"
msgstr ""
-#: heat/engine/resources/instance.py:672 heat/engine/resources/server.py:567
+#: heat/engine/resources/instance.py:681 heat/engine/resources/server.py:641
#, python-format
msgid "Cannot resume %s, resource_id not set"
msgstr ""
-#: heat/engine/resources/instance.py:681
+#: heat/engine/resources/instance.py:690
#, python-format
msgid "resuming instance %s"
msgstr ""
@@ -2221,65 +2285,74 @@ msgstr ""
msgid "ID of the VPNGateway to attach to the VPC."
msgstr ""
-#: heat/engine/resources/loadbalancer.py:233
+#: heat/engine/resources/loadbalancer.py:241
msgid "The Availability Zones in which to create the load balancer."
msgstr ""
-#: heat/engine/resources/loadbalancer.py:238
+#: heat/engine/resources/loadbalancer.py:246
msgid "An application health check for the instances."
msgstr ""
-#: heat/engine/resources/loadbalancer.py:242
+#: heat/engine/resources/loadbalancer.py:250
msgid ""
"The number of consecutive health probe successes required before moving "
"the instance to the healthy state."
msgstr ""
-#: heat/engine/resources/loadbalancer.py:249
+#: heat/engine/resources/loadbalancer.py:257
msgid ""
"The approximate interval, in seconds, between health checks of an "
"individual instance."
msgstr ""
-#: heat/engine/resources/loadbalancer.py:255
+#: heat/engine/resources/loadbalancer.py:263
msgid "The port being checked."
msgstr ""
-#: heat/engine/resources/loadbalancer.py:260
+#: heat/engine/resources/loadbalancer.py:268
msgid "Health probe timeout, in seconds."
msgstr ""
-#: heat/engine/resources/loadbalancer.py:265
+#: heat/engine/resources/loadbalancer.py:273
msgid ""
"The number of consecutive health probe failures required before moving "
"the instance to the unhealthy state"
msgstr ""
-#: heat/engine/resources/loadbalancer.py:274
+#: heat/engine/resources/loadbalancer.py:282
msgid "The list of instance IDs load balanced."
msgstr ""
-#: heat/engine/resources/loadbalancer.py:279
+#: heat/engine/resources/loadbalancer.py:287
msgid "One or more listeners for this load balancer."
msgstr ""
-#: heat/engine/resources/loadbalancer.py:285
+#: heat/engine/resources/loadbalancer.py:293
msgid "TCP port on which the instance server is listening."
msgstr ""
-#: heat/engine/resources/loadbalancer.py:291
+#: heat/engine/resources/loadbalancer.py:299
msgid "The external load balancer port number."
msgstr ""
-#: heat/engine/resources/loadbalancer.py:296
+#: heat/engine/resources/loadbalancer.py:304
msgid "The load balancer transport protocol to use."
msgstr ""
-#: heat/engine/resources/loadbalancer.py:409
+#: heat/engine/resources/loadbalancer.py:417
#, python-format
msgid "haproxy server:%s"
msgstr ""
+#: heat/engine/resources/loadbalancer.py:428
+#, python-format
+msgid "Using custom loadbalancer template %s"
+msgstr ""
+
+#: heat/engine/resources/loadbalancer.py:484
+msgid "Custom LoadBalancer template can not be found"
+msgstr ""
+
#: heat/engine/resources/network_interface.py:44
msgid "Description for this interface."
msgstr ""
@@ -2304,6 +2377,32 @@ msgstr ""
msgid "Private IP address of the network interface."
msgstr ""
+#: heat/engine/resources/nova_floatingip.py:30
+msgid "Allocate a floating IP from a given floating IP pool."
+msgstr ""
+
+#: heat/engine/resources/nova_floatingip.py:36
+msgid "Pool from which floating IP is allocated."
+msgstr ""
+
+#: heat/engine/resources/nova_floatingip.py:37
+msgid "Allocated floating IP address."
+msgstr ""
+
+#: heat/engine/resources/nova_floatingip.py:57
+msgid ""
+"Could not allocate floating IP. Probably there is no default floating IP "
+"pool is configured."
+msgstr ""
+
+#: heat/engine/resources/nova_floatingip.py:90
+msgid "Server to assign floating IP to."
+msgstr ""
+
+#: heat/engine/resources/nova_floatingip.py:95
+msgid "ID of the floating IP to assign to the server."
+msgstr ""
+
#: heat/engine/resources/nova_keypair.py:49
msgid "The name of the key pair."
msgstr ""
@@ -2350,12 +2449,12 @@ msgstr ""
msgid "Resizing to '%(flavor)s' failed, status '%(status)s'"
msgstr ""
-#: heat/engine/resources/nova_utils.py:270
+#: heat/engine/resources/nova_utils.py:265
#, python-format
msgid "Rebuilding server failed, status '%s'"
msgstr ""
-#: heat/engine/resources/nova_utils.py:290
+#: heat/engine/resources/nova_utils.py:285
#, python-format
msgid "Instance (%(server)s) not found: %(ex)s"
msgstr ""
@@ -2582,219 +2681,225 @@ msgstr ""
msgid "List of security group egress rules."
msgstr ""
-#: heat/engine/resources/server.py:38
+#: heat/engine/resources/server.py:71
+msgid "Server name."
+msgstr ""
+
+#: heat/engine/resources/server.py:75
+msgid "The ID or name of the image to boot with."
+msgstr ""
+
+#: heat/engine/resources/server.py:80
+msgid "Block device mappings for this server."
+msgstr ""
+
+#: heat/engine/resources/server.py:86
msgid ""
"A device name where the volume will be attached in the system at "
"/dev/device_name. This value is typically vda."
msgstr ""
-#: heat/engine/resources/server.py:43
+#: heat/engine/resources/server.py:93
msgid ""
"The ID of the volume to boot from. Only one of volume_id or snapshot_id "
"should be provided."
msgstr ""
-#: heat/engine/resources/server.py:47
+#: heat/engine/resources/server.py:99
msgid "The ID of the snapshot to create a volume from."
msgstr ""
-#: heat/engine/resources/server.py:51
+#: heat/engine/resources/server.py:104
msgid ""
"The size of the volume, in GB. It is safe to leave this blank and have "
"the Compute service infer the size."
msgstr ""
-#: heat/engine/resources/server.py:56
+#: heat/engine/resources/server.py:110
msgid ""
"Indicate whether the volume should be deleted when the server is "
"terminated."
msgstr ""
-#: heat/engine/resources/server.py:63
-msgid "DEPRECATED! ID of network to create a port on."
-msgstr ""
-
-#: heat/engine/resources/server.py:67
-msgid "Name or ID of network to create a port on."
-msgstr ""
-
-#: heat/engine/resources/server.py:70
-msgid "Fixed IP address to specify for the port created on the requested network."
-msgstr ""
-
-#: heat/engine/resources/server.py:74
-msgid "ID of an existing port to associate with this server."
-msgstr ""
-
-#: heat/engine/resources/server.py:81
-msgid "Optional server name."
-msgstr ""
-
-#: heat/engine/resources/server.py:84
-msgid "The ID or name of the image to boot with."
-msgstr ""
-
-#: heat/engine/resources/server.py:88
-msgid "Block device mappings for this server."
-msgstr ""
-
-#: heat/engine/resources/server.py:96
+#: heat/engine/resources/server.py:118
msgid "The ID or name of the flavor to boot onto."
msgstr ""
-#: heat/engine/resources/server.py:101
+#: heat/engine/resources/server.py:124
msgid ""
"Policy on how to apply a flavor update; either by requesting a server "
"resize or by replacing the entire server."
msgstr ""
-#: heat/engine/resources/server.py:110
+#: heat/engine/resources/server.py:134
msgid ""
"Policy on how to apply an image-id update; either by requesting a server "
"rebuild or by replacing the entire server"
msgstr ""
-#: heat/engine/resources/server.py:118
+#: heat/engine/resources/server.py:145
msgid "Name of keypair to inject into the server."
msgstr ""
-#: heat/engine/resources/server.py:122
+#: heat/engine/resources/server.py:149
msgid "Name of the administrative user to use on the server."
msgstr ""
-#: heat/engine/resources/server.py:126
+#: heat/engine/resources/server.py:154
msgid "Name of the availability zone for server placement."
msgstr ""
-#: heat/engine/resources/server.py:130
+#: heat/engine/resources/server.py:158
msgid "List of security group names or IDs."
msgstr ""
-#: heat/engine/resources/server.py:134
+#: heat/engine/resources/server.py:163
msgid ""
"An ordered list of nics to be added to this server, with information "
"about connected networks, fixed ips, port etc."
msgstr ""
-#: heat/engine/resources/server.py:144
+#: heat/engine/resources/server.py:170
+msgid "DEPRECATED! ID of network to create a port on."
+msgstr ""
+
+#: heat/engine/resources/server.py:174
+msgid "Name or ID of network to create a port on."
+msgstr ""
+
+#: heat/engine/resources/server.py:178
+msgid "Fixed IP address to specify for the port created on the requested network."
+msgstr ""
+
+#: heat/engine/resources/server.py:183
+msgid "ID of an existing port to associate with this server."
+msgstr ""
+
+#: heat/engine/resources/server.py:191
msgid "Arbitrary key-value pairs specified by the client to help boot a server."
msgstr ""
-#: heat/engine/resources/server.py:149
+#: heat/engine/resources/server.py:196
msgid ""
-"Arbitrary key/value metadata to store for this server. A maximum of five "
-"entries is allowed, and both keys and values must be 255 characters or "
-"less."
+"Arbitrary key/value metadata to store for this server. Both keys and "
+"values must be 255 characters or less."
msgstr ""
-#: heat/engine/resources/server.py:156
+#: heat/engine/resources/server.py:202
msgid ""
"How the user_data should be formatted for the server. For HEAT_CFNTOOLS, "
"the user_data is bundled as part of the heat-cfntools cloud-init boot "
"configuration data. For RAW, the user_data is passed to Nova unmodified."
msgstr ""
-#: heat/engine/resources/server.py:164
+#: heat/engine/resources/server.py:213
msgid "User data script to be executed by cloud-init."
msgstr ""
-#: heat/engine/resources/server.py:169
+#: heat/engine/resources/server.py:218
msgid "A UUID for the set of servers being requested."
msgstr ""
-#: heat/engine/resources/server.py:173
+#: heat/engine/resources/server.py:222
msgid "value for config drive either boolean, or volume-id."
msgstr ""
-#: heat/engine/resources/server.py:180
+#: heat/engine/resources/server.py:226
msgid "Control how the disk is partitioned when the server is created."
msgstr ""
-#: heat/engine/resources/server.py:186
+#: heat/engine/resources/server.py:235
msgid "A dict of all server details as returned by the API."
msgstr ""
-#: heat/engine/resources/server.py:187
+#: heat/engine/resources/server.py:236
msgid "A dict of all network addresses as returned by the API."
msgstr ""
-#: heat/engine/resources/server.py:189
+#: heat/engine/resources/server.py:238
msgid ""
"A dict of assigned network addresses of the form: {\"public\": [ip1, "
"ip2...], \"private\": [ip3, ip4]}."
msgstr ""
-#: heat/engine/resources/server.py:191
+#: heat/engine/resources/server.py:240
msgid ""
"Convenience attribute to fetch the first assigned network address, or an "
"empty string if nothing has been assigned at this time. Result may not be"
" predictable if the server has addresses from more than one network."
msgstr ""
-#: heat/engine/resources/server.py:197
+#: heat/engine/resources/server.py:246
msgid "AWS compatible instance name."
msgstr ""
-#: heat/engine/resources/server.py:198
+#: heat/engine/resources/server.py:247
msgid "The manually assigned alternative public IPv4 address of the server."
msgstr ""
-#: heat/engine/resources/server.py:200
+#: heat/engine/resources/server.py:249
msgid "The manually assigned alternative public IPv6 address of the server."
msgstr ""
-#: heat/engine/resources/server.py:297
+#: heat/engine/resources/server.py:346
#, python-format
msgid "Creation of server %s failed."
msgstr ""
-#: heat/engine/resources/server.py:465
+#: heat/engine/resources/server.py:523
#, python-format
msgid "Either volume_id or snapshot_id must be specified for device mapping %s"
msgstr ""
-#: heat/engine/resources/server.py:474
+#: heat/engine/resources/server.py:532
#, python-format
msgid "Neither image nor bootable volume is specified for instance %s"
msgstr ""
-#: heat/engine/resources/server.py:482 heat/tests/test_server.py:418
+#: heat/engine/resources/server.py:540
#, python-format
msgid ""
-"Properties \"uuid\" and \"network\" are both set to the network "
-"\"%(network)s\" for the server \"%(server)s\". The \"uuid\" property is "
-"deprecated. Use only \"network\" property."
+"Properties \"%(uuid)s\" and \"%(id)s\" are both set to the network "
+"\"%(network)s\" for the server \"%(server)s\". The \"%(uuid)s\" property "
+"is deprecated. Use only \"%(id)s\" property."
msgstr ""
-#: heat/engine/resources/server.py:490
+#: heat/engine/resources/server.py:550
#, python-format
msgid ""
-"For the server \"%(server)s\" the \"uuid\" property is set to network "
-"\"%(network)s\". \"uuid\" property is deprecated. Use \"network\" "
+"For the server \"%(server)s\" the \"%(uuid)s\" property is set to network"
+" \"%(network)s\". \"%(uuid)s\" property is deprecated. Use \"%(id)s\" "
"property instead."
msgstr ""
-#: heat/engine/resources/server.py:527 heat/engine/resources/server.py:573
+#: heat/engine/resources/server.py:566
+#, python-format
+msgid ""
+"Instance metadata must not contain greater than %s entries. This is the "
+"maximum number allowed by your service provider"
+msgstr ""
+
+#: heat/engine/resources/server.py:601 heat/engine/resources/server.py:647
#, python-format
msgid "Failed to find server %s"
msgstr ""
-#: heat/engine/resources/server.py:530
+#: heat/engine/resources/server.py:604
#, python-format
msgid "suspending server %s"
msgstr ""
-#: heat/engine/resources/server.py:547
+#: heat/engine/resources/server.py:621
#, python-format
msgid "%(name)s check_suspend_complete status = %(status)s"
msgstr ""
-#: heat/engine/resources/server.py:554
+#: heat/engine/resources/server.py:628
#, python-format
msgid "Suspend of server %(server)s failed with unknown status: %(status)s"
msgstr ""
-#: heat/engine/resources/server.py:576
+#: heat/engine/resources/server.py:650
#, python-format
msgid "resuming server %s"
msgstr ""
@@ -2813,7 +2918,7 @@ msgstr ""
msgid "The set of parameters passed to this nested stack."
msgstr ""
-#: heat/engine/resources/stack.py:68 heat/engine/resources/stack.py:101
+#: heat/engine/resources/stack.py:74 heat/engine/resources/stack.py:108
#, python-format
msgid "Could not fetch remote template '%(url)s': %(exc)s"
msgstr ""
@@ -2898,257 +3003,252 @@ msgstr ""
msgid "SwiftContainer delete container %s"
msgstr ""
-#: heat/engine/resources/swift.py:153
+#: heat/engine/resources/swift.py:152
#, python-format
msgid "Head container failed: %s"
msgstr ""
-#: heat/engine/resources/template_resource.py:53
+#: heat/engine/resources/template_resource.py:54
msgid "Only Templates with an extension of .yaml or .template are supported"
msgstr ""
-#: heat/engine/resources/template_resource.py:141
+#: heat/engine/resources/template_resource.py:150
#, python-format
msgid "Could not fetch remote template '%(name)s': %(exc)s"
msgstr ""
-#: heat/engine/resources/template_resource.py:154
+#: heat/engine/resources/template_resource.py:163
#, python-format
msgid "Unknown error retrieving %s"
msgstr ""
-#: heat/engine/resources/template_resource.py:163
+#: heat/engine/resources/template_resource.py:172
#, python-format
msgid "Required property %(n)s for facade %(type)s missing in provider"
msgstr ""
-#: heat/engine/resources/template_resource.py:171
+#: heat/engine/resources/template_resource.py:180
#, python-format
msgid ""
"Property %(n)s type mismatch between facade %(type)s (%(fs_type)s) and "
"provider (%(ps_type)s)"
msgstr ""
-#: heat/engine/resources/template_resource.py:180
+#: heat/engine/resources/template_resource.py:189
#, python-format
msgid "Provider requires property %(n)s unknown in facade %(type)s"
msgstr ""
-#: heat/engine/resources/template_resource.py:187
+#: heat/engine/resources/template_resource.py:196
#, python-format
msgid "Attribute %(attr)s for facade %(type)s missing in provider"
msgstr ""
-#: heat/engine/resources/template_resource.py:200
+#: heat/engine/resources/template_resource.py:209
#, python-format
msgid "Failed to retrieve template data: %s"
msgstr ""
-#: heat/engine/resources/user.py:57
+#: heat/engine/resources/user.py:59
msgid "A login profile for the user."
msgstr ""
-#: heat/engine/resources/user.py:66
+#: heat/engine/resources/user.py:68
msgid "Access policies to apply to the user."
msgstr ""
-#: heat/engine/resources/user.py:81 heat/engine/resources/user.py:151
+#: heat/engine/resources/user.py:83 heat/engine/resources/user.py:153
#, python-format
msgid "Ignoring policy %s, must be string resource name"
msgstr ""
-#: heat/engine/resources/user.py:88
+#: heat/engine/resources/user.py:90
#, python-format
msgid "Policy %(policy)s does not exist in stack %(stack)s"
msgstr ""
-#: heat/engine/resources/user.py:94
+#: heat/engine/resources/user.py:96
#, python-format
msgid "Policy %s is not an AccessPolicy resource"
msgstr ""
-#: heat/engine/resources/user.py:117
+#: heat/engine/resources/user.py:119
msgid "Cannot delete User resource before user created!"
msgstr ""
-#: heat/engine/resources/user.py:127
+#: heat/engine/resources/user.py:129
msgid "Cannot suspend User resource before user created!"
msgstr ""
-#: heat/engine/resources/user.py:134
+#: heat/engine/resources/user.py:136
msgid "Cannot resume User resource before user created!"
msgstr ""
-#: heat/engine/resources/user.py:175
+#: heat/engine/resources/user.py:177
msgid "The name of the user that the new key will belong to."
msgstr ""
-#: heat/engine/resources/user.py:209
+#: heat/engine/resources/user.py:213
#, python-format
msgid "could not find user %s"
msgstr ""
-#: heat/engine/resources/user.py:227
+#: heat/engine/resources/user.py:242
#, python-format
msgid "Error deleting %s - user not found"
msgstr ""
-#: heat/engine/resources/user.py:244 heat/engine/resources/user.py:253
+#: heat/engine/resources/user.py:259 heat/engine/resources/user.py:282
#, python-format
msgid "could not get secret for %(username)s Error:%(msg)s"
msgstr ""
-#: heat/engine/resources/user.py:261
-#, python-format
-msgid "Unexpected ec2 keypair, for %(id)s access %(access)s"
-msgstr ""
-
-#: heat/engine/resources/user.py:299
+#: heat/engine/resources/user.py:325
msgid ""
"Resources that users are allowed to access by the DescribeStackResource "
"API."
msgstr ""
-#: heat/engine/resources/user.py:310
+#: heat/engine/resources/user.py:336
#, python-format
msgid "AccessPolicy resource %s not in stack"
msgstr ""
-#: heat/engine/resources/volume.py:55 heat/engine/resources/volume.py:373
+#: heat/engine/resources/volume.py:51 heat/engine/resources/volume.py:369
msgid "The availability zone in which the volume will be created."
msgstr ""
-#: heat/engine/resources/volume.py:60 heat/engine/resources/volume.py:377
-#: heat/engine/resources/volume.py:422
+#: heat/engine/resources/volume.py:56 heat/engine/resources/volume.py:373
+#: heat/engine/resources/volume.py:421
msgid "The size of the volume in GB."
msgstr ""
-#: heat/engine/resources/volume.py:64
+#: heat/engine/resources/volume.py:60
msgid "If specified, the backup used as the source to create the volume."
msgstr ""
-#: heat/engine/resources/volume.py:69
+#: heat/engine/resources/volume.py:65
msgid "The list of tags to associate with the volume."
msgstr ""
-#: heat/engine/resources/volume.py:159
+#: heat/engine/resources/volume.py:155
msgid "cant delete volume when in-use"
msgstr ""
-#: heat/engine/resources/volume.py:160
+#: heat/engine/resources/volume.py:156
msgid "Volume in use"
msgstr ""
-#: heat/engine/resources/volume.py:227
+#: heat/engine/resources/volume.py:223
#, python-format
msgid "%(name)s - volume status: %(status)s"
msgstr ""
-#: heat/engine/resources/volume.py:235
+#: heat/engine/resources/volume.py:231
#, python-format
msgid "%s - complete"
msgstr ""
-#: heat/engine/resources/volume.py:268 heat/engine/resources/volume.py:301
+#: heat/engine/resources/volume.py:264 heat/engine/resources/volume.py:297
#, python-format
msgid "%s - volume not found"
msgstr ""
-#: heat/engine/resources/volume.py:284
+#: heat/engine/resources/volume.py:280
#, python-format
msgid "%s - volume still in use"
msgstr ""
-#: heat/engine/resources/volume.py:295
+#: heat/engine/resources/volume.py:291
#, python-format
msgid "%(name)s - status: %(status)s"
msgstr ""
-#: heat/engine/resources/volume.py:314
+#: heat/engine/resources/volume.py:310
msgid "The ID of the instance to which the volume attaches."
msgstr ""
-#: heat/engine/resources/volume.py:381
+#: heat/engine/resources/volume.py:380
msgid "If specified, the snapshot to create the volume from."
msgstr ""
-#: heat/engine/resources/volume.py:385
+#: heat/engine/resources/volume.py:384
msgid "If specified, the backup to create the volume from."
msgstr ""
-#: heat/engine/resources/volume.py:389
+#: heat/engine/resources/volume.py:388
msgid "A name used to distinguish the volume."
msgstr ""
-#: heat/engine/resources/volume.py:393
+#: heat/engine/resources/volume.py:392
msgid "A description of the volume."
msgstr ""
-#: heat/engine/resources/volume.py:397
+#: heat/engine/resources/volume.py:396
msgid "If specified, the type of volume to use, mapping to a specific backend."
msgstr ""
-#: heat/engine/resources/volume.py:402
+#: heat/engine/resources/volume.py:401
msgid "Key/value pairs to associate with the volume."
msgstr ""
-#: heat/engine/resources/volume.py:406
+#: heat/engine/resources/volume.py:405
msgid "DEPRECATED: use \"image\" instead."
msgstr ""
-#: heat/engine/resources/volume.py:410
+#: heat/engine/resources/volume.py:409
msgid "If specified, the name or ID of the image to create the volume from."
msgstr ""
-#: heat/engine/resources/volume.py:415
+#: heat/engine/resources/volume.py:414
msgid "If specified, the volume to use as source."
msgstr ""
-#: heat/engine/resources/volume.py:420
+#: heat/engine/resources/volume.py:419
msgid "The availability zone in which the volume is located."
msgstr ""
-#: heat/engine/resources/volume.py:423
+#: heat/engine/resources/volume.py:422
msgid "The snapshot the volume was created from, if any."
msgstr ""
-#: heat/engine/resources/volume.py:424
+#: heat/engine/resources/volume.py:423
msgid "Name of the volume."
msgstr ""
-#: heat/engine/resources/volume.py:425
+#: heat/engine/resources/volume.py:424
msgid "Description of the volume."
msgstr ""
-#: heat/engine/resources/volume.py:426
+#: heat/engine/resources/volume.py:425
msgid "The type of the volume mapping to a backend, if any."
msgstr ""
-#: heat/engine/resources/volume.py:428
+#: heat/engine/resources/volume.py:427
msgid "Key/value pairs associated with the volume."
msgstr ""
-#: heat/engine/resources/volume.py:429
+#: heat/engine/resources/volume.py:428
msgid "The volume used as source, if any."
msgstr ""
-#: heat/engine/resources/volume.py:430
+#: heat/engine/resources/volume.py:429
msgid "The current status of the volume."
msgstr ""
-#: heat/engine/resources/volume.py:431
+#: heat/engine/resources/volume.py:430
msgid "The timestamp indicating volume creation."
msgstr ""
-#: heat/engine/resources/volume.py:432
+#: heat/engine/resources/volume.py:431
msgid "Boolean indicating if the volume can be booted or not."
msgstr ""
-#: heat/engine/resources/volume.py:482
+#: heat/engine/resources/volume.py:481
msgid "The ID of the server to which the volume attaches."
msgstr ""
-#: heat/engine/resources/volume.py:492
+#: heat/engine/resources/volume.py:491
msgid ""
"The location where the volume is exposed on the instance. This assignment"
" may not be honored and it is advised that the path /dev/disk/by-"
@@ -3175,228 +3275,236 @@ msgstr ""
msgid "Multiple routers found with name %s"
msgstr ""
-#: heat/engine/resources/wait_condition.py:76
+#: heat/engine/resources/wait_condition.py:80
#, python-format
msgid "Overwriting Metadata item for UniqueId %s!"
msgstr ""
-#: heat/engine/resources/wait_condition.py:86
+#: heat/engine/resources/wait_condition.py:90
#, python-format
msgid "Metadata failed validation for %s"
msgstr ""
-#: heat/engine/resources/wait_condition.py:87
+#: heat/engine/resources/wait_condition.py:91
msgid "Metadata format invalid"
msgstr ""
-#: heat/engine/resources/wait_condition.py:125
+#: heat/engine/resources/wait_condition.py:142
#, python-format
msgid "%(len)d of %(count)d received"
msgstr ""
-#: heat/engine/resources/wait_condition.py:144
+#: heat/engine/resources/wait_condition.py:161
msgid ""
"A reference to the wait condition handle used to signal this wait "
"condition."
msgstr ""
-#: heat/engine/resources/wait_condition.py:150
+#: heat/engine/resources/wait_condition.py:167
msgid "The number of seconds to wait for the correct number of signals to arrive."
msgstr ""
-#: heat/engine/resources/wait_condition.py:159
+#: heat/engine/resources/wait_condition.py:176
msgid ""
"The number of success signals that must be received before the stack "
"creation process continues."
msgstr ""
-#: heat/engine/resources/wait_condition.py:178
+#: heat/engine/resources/wait_condition.py:195
#, python-format
msgid "WaitCondition invalid Handle tenant %s"
msgstr ""
-#: heat/engine/resources/wait_condition.py:181
-#: heat/engine/resources/wait_condition.py:184
+#: heat/engine/resources/wait_condition.py:198
+#: heat/engine/resources/wait_condition.py:201
#, python-format
msgid "WaitCondition invalid Handle stack %s"
msgstr ""
-#: heat/engine/resources/wait_condition.py:187
-#: heat/engine/resources/wait_condition.py:191
+#: heat/engine/resources/wait_condition.py:204
+#: heat/engine/resources/wait_condition.py:208
#, python-format
msgid "WaitCondition invalid Handle %s"
msgstr ""
-#: heat/engine/resources/wait_condition.py:205
+#: heat/engine/resources/wait_condition.py:222
#, python-format
msgid "%(name)s Timed out (%(timeout)s)"
msgstr ""
-#: heat/engine/resources/wait_condition.py:213
+#: heat/engine/resources/wait_condition.py:230
#, python-format
msgid "%(name)s Failed (%(failure)s)"
msgstr ""
-#: heat/engine/resources/wait_condition.py:218
+#: heat/engine/resources/wait_condition.py:235
#, python-format
msgid "%s Succeeded"
msgstr ""
#: heat/engine/resources/ceilometer/alarm.py:40
-msgid "Operator used to compare specified statistic with threshold."
-msgstr ""
-
-#: heat/engine/resources/ceilometer/alarm.py:56
-msgid "Meter name watched by the alarm."
-msgstr ""
-
-#: heat/engine/resources/ceilometer/alarm.py:67
-msgid "Meter statistic to evaluate."
+msgid "True if alarm evaluation/actioning is enabled."
msgstr ""
-#: heat/engine/resources/ceilometer/alarm.py:83
+#: heat/engine/resources/ceilometer/alarm.py:46
msgid "A list of URLs (webhooks) to invoke when state transitions to alarm."
msgstr ""
-#: heat/engine/resources/ceilometer/alarm.py:89
+#: heat/engine/resources/ceilometer/alarm.py:52
msgid "A list of URLs (webhooks) to invoke when state transitions to ok."
msgstr ""
-#: heat/engine/resources/ceilometer/alarm.py:95
+#: heat/engine/resources/ceilometer/alarm.py:58
msgid ""
"A list of URLs (webhooks) to invoke when state transitions to "
"insufficient-data."
msgstr ""
-#: heat/engine/resources/ceilometer/alarm.py:106
-msgid "True if alarm evaluation/actioning is enabled."
-msgstr ""
-
-#: heat/engine/resources/ceilometer/alarm.py:112
+#: heat/engine/resources/ceilometer/alarm.py:64
msgid ""
"False to trigger actions when the threshold is reached AND the alarm's "
"state has changed. By default, actions are called each time the threshold"
" is reached."
msgstr ""
-#: heat/engine/resources/ceilometer/alarm.py:120
+#: heat/engine/resources/ceilometer/alarm.py:108
+msgid "Operator used to compare specified statistic with threshold."
+msgstr ""
+
+#: heat/engine/resources/ceilometer/alarm.py:122
+msgid "Meter name watched by the alarm."
+msgstr ""
+
+#: heat/engine/resources/ceilometer/alarm.py:132
+msgid "Meter statistic to evaluate."
+msgstr ""
+
+#: heat/engine/resources/ceilometer/alarm.py:147
msgid ""
"Meter should match this resource metadata (key=value) additionally to the"
" meter_name."
msgstr ""
-#: heat/engine/resources/neutron/firewall.py:62
+#: heat/engine/resources/ceilometer/alarm.py:213
+msgid "List of alarm identifiers to combine."
+msgstr ""
+
+#: heat/engine/resources/ceilometer/alarm.py:219
+msgid "Operator used to combine the alarms."
+msgstr ""
+
+#: heat/engine/resources/neutron/firewall.py:61
msgid "Name for the Firewall."
msgstr ""
-#: heat/engine/resources/neutron/firewall.py:63
+#: heat/engine/resources/neutron/firewall.py:62
msgid "Description of the Firewall."
msgstr ""
-#: heat/engine/resources/neutron/firewall.py:64
+#: heat/engine/resources/neutron/firewall.py:63
msgid "The administrative state of the Firewall."
msgstr ""
-#: heat/engine/resources/neutron/firewall.py:65
+#: heat/engine/resources/neutron/firewall.py:64
msgid "Unique identifier of the FirewallPolicy used to create the Firewall."
msgstr ""
-#: heat/engine/resources/neutron/firewall.py:67
+#: heat/engine/resources/neutron/firewall.py:66
msgid "The status of the Firewall."
msgstr ""
-#: heat/engine/resources/neutron/firewall.py:68
-#: heat/engine/resources/neutron/firewall.py:268
+#: heat/engine/resources/neutron/firewall.py:67
+#: heat/engine/resources/neutron/firewall.py:265
msgid "Id of the tenant owning the Firewall."
msgstr ""
-#: heat/engine/resources/neutron/firewall.py:69
+#: heat/engine/resources/neutron/firewall.py:68
#: heat/engine/resources/neutron/floatingip.py:69
#: heat/engine/resources/neutron/loadbalancer.py:118
-#: heat/engine/resources/neutron/loadbalancer.py:423
-#: heat/engine/resources/neutron/net.py:79
-#: heat/engine/resources/neutron/port.py:141
-#: heat/engine/resources/neutron/router.py:89
-#: heat/engine/resources/neutron/subnet.py:119
-#: heat/engine/resources/neutron/vpnservice.py:83
+#: heat/engine/resources/neutron/loadbalancer.py:475
+#: heat/engine/resources/neutron/net.py:78
+#: heat/engine/resources/neutron/port.py:140
+#: heat/engine/resources/neutron/router.py:88
+#: heat/engine/resources/neutron/subnet.py:118
+#: heat/engine/resources/neutron/vpnservice.py:82
msgid "All attributes."
msgstr ""
-#: heat/engine/resources/neutron/firewall.py:139
+#: heat/engine/resources/neutron/firewall.py:137
msgid "Name for the FirewallPolicy."
msgstr ""
-#: heat/engine/resources/neutron/firewall.py:140
+#: heat/engine/resources/neutron/firewall.py:138
msgid "Description of the FirewallPolicy."
msgstr ""
-#: heat/engine/resources/neutron/firewall.py:141
+#: heat/engine/resources/neutron/firewall.py:139
msgid "List of FirewallRules in this FirewallPolicy."
msgstr ""
-#: heat/engine/resources/neutron/firewall.py:142
+#: heat/engine/resources/neutron/firewall.py:140
msgid "Shared status of this FirewallPolicy."
msgstr ""
-#: heat/engine/resources/neutron/firewall.py:143
+#: heat/engine/resources/neutron/firewall.py:141
msgid "Audit status of this FirewallPolicy."
msgstr ""
-#: heat/engine/resources/neutron/firewall.py:144
+#: heat/engine/resources/neutron/firewall.py:142
msgid "Id of the tenant owning the FirewallPolicy."
msgstr ""
-#: heat/engine/resources/neutron/firewall.py:253
+#: heat/engine/resources/neutron/firewall.py:250
msgid "Name for the FirewallRule."
msgstr ""
-#: heat/engine/resources/neutron/firewall.py:254
+#: heat/engine/resources/neutron/firewall.py:251
msgid "Description of the FirewallRule."
msgstr ""
-#: heat/engine/resources/neutron/firewall.py:255
+#: heat/engine/resources/neutron/firewall.py:252
msgid ""
"Unique identifier of the FirewallPolicy to which this FirewallRule "
"belongs."
msgstr ""
-#: heat/engine/resources/neutron/firewall.py:257
+#: heat/engine/resources/neutron/firewall.py:254
msgid "Shared status of this FirewallRule."
msgstr ""
-#: heat/engine/resources/neutron/firewall.py:258
+#: heat/engine/resources/neutron/firewall.py:255
msgid "Protocol value for this FirewallRule."
msgstr ""
-#: heat/engine/resources/neutron/firewall.py:259
+#: heat/engine/resources/neutron/firewall.py:256
msgid "Ip_version for this FirewallRule."
msgstr ""
-#: heat/engine/resources/neutron/firewall.py:260
+#: heat/engine/resources/neutron/firewall.py:257
msgid "Source ip_address for this FirewallRule."
msgstr ""
-#: heat/engine/resources/neutron/firewall.py:261
+#: heat/engine/resources/neutron/firewall.py:258
msgid "Destination ip_address for this FirewallRule."
msgstr ""
-#: heat/engine/resources/neutron/firewall.py:263
+#: heat/engine/resources/neutron/firewall.py:260
msgid "Source port range for this FirewallRule."
msgstr ""
-#: heat/engine/resources/neutron/firewall.py:264
+#: heat/engine/resources/neutron/firewall.py:261
msgid "Destination port range for this FirewallRule."
msgstr ""
-#: heat/engine/resources/neutron/firewall.py:265
+#: heat/engine/resources/neutron/firewall.py:262
msgid "Allow or deny action for this FirewallRule."
msgstr ""
-#: heat/engine/resources/neutron/firewall.py:266
+#: heat/engine/resources/neutron/firewall.py:263
msgid "Indicates whether this FirewallRule is enabled or not."
msgstr ""
-#: heat/engine/resources/neutron/firewall.py:267
+#: heat/engine/resources/neutron/firewall.py:264
msgid "Position of the rule within the FirewallPolicy."
msgstr ""
@@ -3412,14 +3520,14 @@ msgid ""
msgstr ""
#: heat/engine/resources/neutron/floatingip.py:50
-#: heat/engine/resources/neutron/floatingip.py:117
+#: heat/engine/resources/neutron/floatingip.py:116
msgid ""
"ID of an existing port with at least one IP address to associate with "
"this floating IP."
msgstr ""
#: heat/engine/resources/neutron/floatingip.py:55
-#: heat/engine/resources/neutron/floatingip.py:122
+#: heat/engine/resources/neutron/floatingip.py:121
msgid "IP address to use if the port has multiple addresses."
msgstr ""
@@ -3447,7 +3555,7 @@ msgstr ""
msgid "ID of the port associated with this IP."
msgstr ""
-#: heat/engine/resources/neutron/floatingip.py:112
+#: heat/engine/resources/neutron/floatingip.py:111
msgid "ID of the floating IP to associate."
msgstr ""
@@ -3506,360 +3614,424 @@ msgstr ""
msgid "Tenant owning the health monitor."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:172
+#: heat/engine/resources/neutron/loadbalancer.py:177
msgid "Protocol for balancing."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:180
-#: heat/engine/resources/neutron/loadbalancer.py:257
+#: heat/engine/resources/neutron/loadbalancer.py:185
+#: heat/engine/resources/neutron/loadbalancer.py:282
msgid "The subnet on which the members of the pool will be located."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:185
-#: heat/engine/resources/neutron/loadbalancer.py:259
+#: heat/engine/resources/neutron/loadbalancer.py:190
+#: heat/engine/resources/neutron/loadbalancer.py:284
msgid "The algorithm used to distribute load between the members of the pool."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:196
-#: heat/engine/resources/neutron/loadbalancer.py:255
+#: heat/engine/resources/neutron/loadbalancer.py:201
+#: heat/engine/resources/neutron/loadbalancer.py:280
msgid "Name of the pool."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:200
-#: heat/engine/resources/neutron/loadbalancer.py:261
+#: heat/engine/resources/neutron/loadbalancer.py:205
+#: heat/engine/resources/neutron/loadbalancer.py:286
msgid "Description of the pool."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:205
-#: heat/engine/resources/neutron/loadbalancer.py:254
+#: heat/engine/resources/neutron/loadbalancer.py:210
+#: heat/engine/resources/neutron/loadbalancer.py:279
msgid "The administrative state of this pool."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:211
+#: heat/engine/resources/neutron/loadbalancer.py:216
msgid "IP address and port of the pool."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:215
+#: heat/engine/resources/neutron/loadbalancer.py:220
msgid "Name of the vip."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:219
+#: heat/engine/resources/neutron/loadbalancer.py:224
msgid "Description of the vip."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:223
+#: heat/engine/resources/neutron/loadbalancer.py:228
msgid "IP address of the vip."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:227
+#: heat/engine/resources/neutron/loadbalancer.py:232
msgid "The maximum number of connections per second allowed for the vip."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:232
+#: heat/engine/resources/neutron/loadbalancer.py:237
msgid ""
"TCP port on which to listen for client traffic that is associated with "
"the vip address."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:238
+#: heat/engine/resources/neutron/loadbalancer.py:243
+msgid "Configuration of session persistence."
+msgstr ""
+
+#: heat/engine/resources/neutron/loadbalancer.py:247
+msgid "Method of implementation of session persistence feature."
+msgstr ""
+
+#: heat/engine/resources/neutron/loadbalancer.py:256
+msgid "Name of the cookie, required if type is APP_COOKIE."
+msgstr ""
+
+#: heat/engine/resources/neutron/loadbalancer.py:263
msgid "The administrative state of this vip."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:246
+#: heat/engine/resources/neutron/loadbalancer.py:271
msgid "List of health monitors associated with the pool."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:256
+#: heat/engine/resources/neutron/loadbalancer.py:281
msgid "Protocol to balance."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:262
+#: heat/engine/resources/neutron/loadbalancer.py:287
msgid "Tenant owning the pool."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:263
+#: heat/engine/resources/neutron/loadbalancer.py:288
msgid "Vip associated with the pool."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:381
-#: heat/engine/resources/neutron/loadbalancer.py:420
-#: heat/engine/resources/neutron/loadbalancer.py:482
+#: heat/engine/resources/neutron/loadbalancer.py:306
+#: heat/tests/test_neutron_loadbalancer.py:468
+msgid ""
+"Property cookie_name is required, when session_persistence type is set to"
+" APP_COOKIE."
+msgstr ""
+
+#: heat/engine/resources/neutron/loadbalancer.py:433
+#: heat/engine/resources/neutron/loadbalancer.py:472
+#: heat/engine/resources/neutron/loadbalancer.py:533
msgid "The ID of the load balancing pool."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:387
+#: heat/engine/resources/neutron/loadbalancer.py:439
msgid "IP address of the pool member on the pool network."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:392
+#: heat/engine/resources/neutron/loadbalancer.py:444
msgid "TCP port on which the pool member listens for requests or connections."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:401
+#: heat/engine/resources/neutron/loadbalancer.py:453
msgid "Weight of pool member in the pool (default to 1)."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:409
+#: heat/engine/resources/neutron/loadbalancer.py:461
msgid "The administrative state of the pool member."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:415
+#: heat/engine/resources/neutron/loadbalancer.py:467
msgid "The administrative state of this pool member."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:417
+#: heat/engine/resources/neutron/loadbalancer.py:469
msgid "Tenant owning the pool member."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:418
+#: heat/engine/resources/neutron/loadbalancer.py:470
msgid "Weight of the pool member in the pool."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:419
+#: heat/engine/resources/neutron/loadbalancer.py:471
msgid "IP address of the pool member."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:421
+#: heat/engine/resources/neutron/loadbalancer.py:473
msgid "TCP port on which the pool member listens forrequests or connections."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:488
+#: heat/engine/resources/neutron/loadbalancer.py:539
msgid "Port number on which the servers are running on the members."
msgstr ""
-#: heat/engine/resources/neutron/loadbalancer.py:493
+#: heat/engine/resources/neutron/loadbalancer.py:544
msgid "The list of Nova server IDs load balanced."
msgstr ""
-#: heat/engine/resources/neutron/net.py:38
+#: heat/engine/resources/neutron/metering.py:36
+#: heat/engine/resources/neutron/metering.py:45
+msgid "Name of the metering label."
+msgstr ""
+
+#: heat/engine/resources/neutron/metering.py:40
+#: heat/engine/resources/neutron/metering.py:46
+msgid "Description of the metering label."
+msgstr ""
+
+#: heat/engine/resources/neutron/metering.py:86
+msgid "The metering label ID to associate with this metering rule."
+msgstr ""
+
+#: heat/engine/resources/neutron/metering.py:91
+msgid "Indicates remote IP prefix to be associated with this metering rule."
+msgstr ""
+
+#: heat/engine/resources/neutron/metering.py:97
+msgid "The direction in which metering rule is applied, either ingress or egress."
+msgstr ""
+
+#: heat/engine/resources/neutron/metering.py:105
+msgid ""
+"Specify whether the remote_ip_prefix will be excluded or not from traffic"
+" counters of the metering label. For example to not count the traffic of "
+"a specific IP address of a range."
+msgstr ""
+
+#: heat/engine/resources/neutron/metering.py:113
+msgid "The direction in which metering rule is applied."
+msgstr ""
+
+#: heat/engine/resources/neutron/metering.py:114
+msgid "Exclude state for cidr."
+msgstr ""
+
+#: heat/engine/resources/neutron/metering.py:115
+msgid "The metering label ID to associate with this metering rule.."
+msgstr ""
+
+#: heat/engine/resources/neutron/metering.py:117
+msgid "CIDR to be associated with this metering rule."
+msgstr ""
+
+#: heat/engine/resources/neutron/net.py:37
msgid ""
"A string specifying a symbolic name for the network, which is not "
"required to be unique."
msgstr ""
-#: heat/engine/resources/neutron/net.py:44
+#: heat/engine/resources/neutron/net.py:43
msgid ""
"Extra parameters to include in the \"network\" object in the creation "
"request. Parameters are often specific to installed hardware or "
"extensions."
msgstr ""
-#: heat/engine/resources/neutron/net.py:52
+#: heat/engine/resources/neutron/net.py:51
msgid "A boolean value specifying the administrative status of the network."
msgstr ""
-#: heat/engine/resources/neutron/net.py:59
+#: heat/engine/resources/neutron/net.py:58
msgid ""
"The ID of the tenant which will own the network. Only administrative "
"users can set the tenant identifier; this cannot be changed using "
"authorization policies."
msgstr ""
-#: heat/engine/resources/neutron/net.py:65
+#: heat/engine/resources/neutron/net.py:64
msgid ""
"Whether this network should be shared across all tenants. Note that the "
"default policy setting restricts usage of this attribute to "
"administrative users only."
msgstr ""
-#: heat/engine/resources/neutron/net.py:74
+#: heat/engine/resources/neutron/net.py:73
msgid "The status of the network."
msgstr ""
-#: heat/engine/resources/neutron/net.py:75
+#: heat/engine/resources/neutron/net.py:74
msgid "The name of the network."
msgstr ""
-#: heat/engine/resources/neutron/net.py:76
+#: heat/engine/resources/neutron/net.py:75
msgid "Subnets of this network."
msgstr ""
-#: heat/engine/resources/neutron/net.py:77
+#: heat/engine/resources/neutron/net.py:76
msgid "The administrative status of the network."
msgstr ""
-#: heat/engine/resources/neutron/net.py:78
+#: heat/engine/resources/neutron/net.py:77
msgid "The tenant owning this network."
msgstr ""
-#: heat/engine/resources/neutron/net.py:134
+#: heat/engine/resources/neutron/net.py:133
msgid ""
"The ID of the network you want to be scheduled by the dhcp_agent. Note "
"that the default policy setting in Neutron restricts usage of this "
"property to administrative users only."
msgstr ""
-#: heat/engine/resources/neutron/net.py:142
+#: heat/engine/resources/neutron/net.py:141
msgid ""
"The ID of the dhcp-agent to schedule the network. Note that the default "
"policy setting in Neutron restricts usage of this property to "
"administrative users only."
msgstr ""
-#: heat/engine/resources/neutron/neutron.py:123
+#: heat/engine/resources/neutron/neutron.py:124
#, python-format
msgid "failed to fetch resource attributes: %s"
msgstr ""
-#: heat/engine/resources/neutron/port.py:54
+#: heat/engine/resources/neutron/port.py:53
msgid "Network ID this port belongs to."
msgstr ""
-#: heat/engine/resources/neutron/port.py:59
+#: heat/engine/resources/neutron/port.py:58
msgid "A symbolic name for this port."
msgstr ""
-#: heat/engine/resources/neutron/port.py:63
+#: heat/engine/resources/neutron/port.py:62
msgid ""
"Extra parameters to include in the \"port\" object in the creation "
"request."
msgstr ""
-#: heat/engine/resources/neutron/port.py:69
-#: heat/engine/resources/neutron/port.py:129
+#: heat/engine/resources/neutron/port.py:68
+#: heat/engine/resources/neutron/port.py:128
msgid "The administrative state of this port."
msgstr ""
-#: heat/engine/resources/neutron/port.py:75
+#: heat/engine/resources/neutron/port.py:74
msgid "Desired IPs for this port."
msgstr ""
-#: heat/engine/resources/neutron/port.py:82
+#: heat/engine/resources/neutron/port.py:81
msgid "Subnet in which to allocate the IP address for this port."
msgstr ""
-#: heat/engine/resources/neutron/port.py:87
+#: heat/engine/resources/neutron/port.py:86
msgid "IP address desired in the subnet for this port."
msgstr ""
-#: heat/engine/resources/neutron/port.py:95
+#: heat/engine/resources/neutron/port.py:94
msgid "MAC address to give to this port."
msgstr ""
-#: heat/engine/resources/neutron/port.py:99
+#: heat/engine/resources/neutron/port.py:98
msgid "Device ID of this port."
msgstr ""
-#: heat/engine/resources/neutron/port.py:103
+#: heat/engine/resources/neutron/port.py:102
msgid "Security group IDs to associate with this port."
msgstr ""
-#: heat/engine/resources/neutron/port.py:109
+#: heat/engine/resources/neutron/port.py:108
msgid "Additional MAC/IP address pairs allowed to pass through the port."
msgstr ""
-#: heat/engine/resources/neutron/port.py:116
+#: heat/engine/resources/neutron/port.py:115
msgid "MAC address to allow through this port."
msgstr ""
-#: heat/engine/resources/neutron/port.py:120
+#: heat/engine/resources/neutron/port.py:119
msgid "IP address to allow through this port."
msgstr ""
-#: heat/engine/resources/neutron/port.py:130
+#: heat/engine/resources/neutron/port.py:129
msgid "Unique identifier for the device."
msgstr ""
-#: heat/engine/resources/neutron/port.py:131
+#: heat/engine/resources/neutron/port.py:130
msgid "Name of the network owning the port."
msgstr ""
-#: heat/engine/resources/neutron/port.py:132
+#: heat/engine/resources/neutron/port.py:131
msgid "Fixed IP addresses."
msgstr ""
-#: heat/engine/resources/neutron/port.py:133
+#: heat/engine/resources/neutron/port.py:132
msgid "MAC address of the port."
msgstr ""
-#: heat/engine/resources/neutron/port.py:134
+#: heat/engine/resources/neutron/port.py:133
msgid "Friendly name of the port."
msgstr ""
-#: heat/engine/resources/neutron/port.py:135
+#: heat/engine/resources/neutron/port.py:134
msgid "Unique identifier for the network owning the port."
msgstr ""
-#: heat/engine/resources/neutron/port.py:136
+#: heat/engine/resources/neutron/port.py:135
msgid "A list of security groups for the port."
msgstr ""
-#: heat/engine/resources/neutron/port.py:137
+#: heat/engine/resources/neutron/port.py:136
msgid "The status of the port."
msgstr ""
-#: heat/engine/resources/neutron/port.py:138
+#: heat/engine/resources/neutron/port.py:137
msgid "Tenant owning the port."
msgstr ""
-#: heat/engine/resources/neutron/port.py:139
+#: heat/engine/resources/neutron/port.py:138
msgid "Additional MAC/IP address pairs allowed to pass through a port."
msgstr ""
-#: heat/engine/resources/neutron/port.py:214
+#: heat/engine/resources/neutron/port.py:215
#, python-format
msgid "updating port with %s"
msgstr ""
-#: heat/engine/resources/neutron/router.py:54
+#: heat/engine/resources/neutron/router.py:53
msgid "External network gateway configuration for a router."
msgstr ""
-#: heat/engine/resources/neutron/router.py:58
+#: heat/engine/resources/neutron/router.py:57
msgid "ID or name of the external network for the gateway."
msgstr ""
-#: heat/engine/resources/neutron/router.py:64
+#: heat/engine/resources/neutron/router.py:63
msgid "Enables Source NAT on the router gateway."
msgstr ""
-#: heat/engine/resources/neutron/router.py:84
+#: heat/engine/resources/neutron/router.py:83
msgid "The status of the router."
msgstr ""
-#: heat/engine/resources/neutron/router.py:85
+#: heat/engine/resources/neutron/router.py:84
msgid "Gateway network for the router."
msgstr ""
-#: heat/engine/resources/neutron/router.py:86
+#: heat/engine/resources/neutron/router.py:85
msgid "Friendly name of the router."
msgstr ""
-#: heat/engine/resources/neutron/router.py:87
+#: heat/engine/resources/neutron/router.py:86
msgid "Administrative state of the router."
msgstr ""
-#: heat/engine/resources/neutron/router.py:88
+#: heat/engine/resources/neutron/router.py:87
msgid "Tenant owning the router."
msgstr ""
-#: heat/engine/resources/neutron/router.py:145
+#: heat/engine/resources/neutron/router.py:143
msgid "The router id."
msgstr ""
-#: heat/engine/resources/neutron/router.py:150
+#: heat/engine/resources/neutron/router.py:148
msgid "The subnet id, either subnet_id or port_id should be specified."
msgstr ""
-#: heat/engine/resources/neutron/router.py:155
+#: heat/engine/resources/neutron/router.py:153
msgid "The port id, either subnet_id or port_id should be specified."
msgstr ""
-#: heat/engine/resources/neutron/router.py:216
+#: heat/engine/resources/neutron/router.py:213
msgid ""
"RouterGateway resource is deprecated and should not be used. Instead use "
"the `external_gateway_info` property in the router resource to set up the"
" gateway."
msgstr ""
-#: heat/engine/resources/neutron/router.py:294
+#: heat/engine/resources/neutron/router.py:290
msgid ""
"The ID of the router you want to be scheduled by the l3_agent. Note that "
"the default policy setting in Neutron restricts usage of this property to"
" administrative users only."
msgstr ""
-#: heat/engine/resources/neutron/router.py:302
+#: heat/engine/resources/neutron/router.py:298
msgid ""
"The ID of the l3-agent to schedule the router. Note that the default "
"policy setting in Neutron restricts usage of this property to "
@@ -3930,383 +4102,383 @@ msgstr ""
msgid "Security groups cannot be assigned the name \"default\"."
msgstr ""
-#: heat/engine/resources/neutron/subnet.py:108
+#: heat/engine/resources/neutron/subnet.py:107
msgid "Friendly name of the subnet."
msgstr ""
-#: heat/engine/resources/neutron/subnet.py:109
+#: heat/engine/resources/neutron/subnet.py:108
msgid "Parent network of the subnet."
msgstr ""
-#: heat/engine/resources/neutron/subnet.py:110
+#: heat/engine/resources/neutron/subnet.py:109
msgid "Tenant owning the subnet."
msgstr ""
-#: heat/engine/resources/neutron/subnet.py:111
+#: heat/engine/resources/neutron/subnet.py:110
msgid "Ip allocation pools and their ranges."
msgstr ""
-#: heat/engine/resources/neutron/subnet.py:112
+#: heat/engine/resources/neutron/subnet.py:111
msgid "Ip of the subnet's gateway."
msgstr ""
-#: heat/engine/resources/neutron/subnet.py:113
+#: heat/engine/resources/neutron/subnet.py:112
msgid "Ip version for the subnet."
msgstr ""
-#: heat/engine/resources/neutron/subnet.py:114
+#: heat/engine/resources/neutron/subnet.py:113
msgid "CIDR block notation for this subnet."
msgstr ""
-#: heat/engine/resources/neutron/subnet.py:116
+#: heat/engine/resources/neutron/subnet.py:115
msgid "List of dns nameservers."
msgstr ""
-#: heat/engine/resources/neutron/subnet.py:117
+#: heat/engine/resources/neutron/subnet.py:116
msgid "'true' if DHCP is enabled for this subnet; 'false' otherwise."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:44
+#: heat/engine/resources/neutron/vpnservice.py:43
msgid "Name for the vpn service."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:49
+#: heat/engine/resources/neutron/vpnservice.py:48
msgid "Description for the vpn service."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:54
+#: heat/engine/resources/neutron/vpnservice.py:53
msgid "Administrative state for the vpn service."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:60
+#: heat/engine/resources/neutron/vpnservice.py:59
msgid "Unique identifier for the subnet in which the vpn service will be created."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:66
+#: heat/engine/resources/neutron/vpnservice.py:65
msgid ""
"Unique identifier for the router to which the vpn service will be "
"inserted."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:73
+#: heat/engine/resources/neutron/vpnservice.py:72
msgid "The administrative state of the vpn service."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:74
+#: heat/engine/resources/neutron/vpnservice.py:73
msgid "The description of the vpn service."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:75
+#: heat/engine/resources/neutron/vpnservice.py:74
msgid "The name of the vpn service."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:76
+#: heat/engine/resources/neutron/vpnservice.py:75
msgid "The unique identifier of the router to which the vpn service was inserted."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:78
+#: heat/engine/resources/neutron/vpnservice.py:77
msgid "The status of the vpn service."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:79
+#: heat/engine/resources/neutron/vpnservice.py:78
msgid "The unique identifier of the subnet in which the vpn service was created."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:81
+#: heat/engine/resources/neutron/vpnservice.py:80
msgid "The unique identifier of the tenant owning the vpn service."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:139
+#: heat/engine/resources/neutron/vpnservice.py:137
msgid "Name for the ipsec site connection."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:144
+#: heat/engine/resources/neutron/vpnservice.py:142
msgid "Description for the ipsec site connection."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:149
+#: heat/engine/resources/neutron/vpnservice.py:147
msgid "Remote branch router public IPv4 address or IPv6 address or FQDN."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:155
+#: heat/engine/resources/neutron/vpnservice.py:153
msgid "Remote branch router identity."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:160
+#: heat/engine/resources/neutron/vpnservice.py:158
msgid "Remote subnet(s) in CIDR format."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:165
+#: heat/engine/resources/neutron/vpnservice.py:163
msgid "Maximum transmission unit size (in bytes) for the ipsec site connection."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:171
+#: heat/engine/resources/neutron/vpnservice.py:169
msgid "Dead Peer Detection protocol configuration for the ipsec site connection."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:176
+#: heat/engine/resources/neutron/vpnservice.py:174
msgid "Controls DPD protocol mode."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:186
+#: heat/engine/resources/neutron/vpnservice.py:184
msgid "Number of seconds for the DPD delay."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:191
+#: heat/engine/resources/neutron/vpnservice.py:189
msgid "Number of seconds for the DPD timeout."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:198
+#: heat/engine/resources/neutron/vpnservice.py:196
msgid "Pre-shared key string for the ipsec site connection."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:203
+#: heat/engine/resources/neutron/vpnservice.py:201
msgid "Initiator state in lowercase for the ipsec site connection."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:211
+#: heat/engine/resources/neutron/vpnservice.py:209
msgid "Administrative state for the ipsec site connection."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:217
+#: heat/engine/resources/neutron/vpnservice.py:215
msgid ""
"Unique identifier for the ike policy associated with the ipsec site "
"connection."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:223
+#: heat/engine/resources/neutron/vpnservice.py:221
msgid ""
"Unique identifier for the ipsec policy associated with the ipsec site "
"connection."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:229
+#: heat/engine/resources/neutron/vpnservice.py:227
msgid ""
"Unique identifier for the vpn service associated with the ipsec site "
"connection."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:236
+#: heat/engine/resources/neutron/vpnservice.py:234
msgid "The administrative state of the ipsec site connection."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:238
+#: heat/engine/resources/neutron/vpnservice.py:236
msgid "The authentication mode of the ipsec site connection."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:240
+#: heat/engine/resources/neutron/vpnservice.py:238
msgid "The description of the ipsec site connection."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:241
+#: heat/engine/resources/neutron/vpnservice.py:239
msgid ""
"The dead peer detection protocol configuration of the ipsec site "
"connection."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:243
+#: heat/engine/resources/neutron/vpnservice.py:241
msgid ""
"The unique identifier of ike policy associated with the ipsec site "
"connection."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:245
+#: heat/engine/resources/neutron/vpnservice.py:243
msgid "The initiator of the ipsec site connection."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:246
+#: heat/engine/resources/neutron/vpnservice.py:244
msgid ""
"The unique identifier of ipsec policy associated with the ipsec site "
"connection."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:248
+#: heat/engine/resources/neutron/vpnservice.py:246
msgid ""
"The maximum transmission unit size (in bytes) of the ipsec site "
"connection."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:250
+#: heat/engine/resources/neutron/vpnservice.py:248
msgid "The name of the ipsec site connection."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:251
+#: heat/engine/resources/neutron/vpnservice.py:249
msgid "The remote branch router public IPv4 address or IPv6 address or FQDN."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:253
+#: heat/engine/resources/neutron/vpnservice.py:251
msgid "The remote subnet(s) in CIDR format of the ipsec site connection."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:255
+#: heat/engine/resources/neutron/vpnservice.py:253
msgid "The remote branch router identity of the ipsec site connection."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:257
+#: heat/engine/resources/neutron/vpnservice.py:255
msgid "The pre-shared key string of the ipsec site connection."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:258
+#: heat/engine/resources/neutron/vpnservice.py:256
msgid "The route mode of the ipsec site connection."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:259
+#: heat/engine/resources/neutron/vpnservice.py:257
msgid "The status of the ipsec site connection."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:260
+#: heat/engine/resources/neutron/vpnservice.py:258
msgid "The unique identifier of the tenant owning the ipsec site connection."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:262
+#: heat/engine/resources/neutron/vpnservice.py:260
msgid ""
"The unique identifier of vpn service associated with the ipsec site "
"connection."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:318
+#: heat/engine/resources/neutron/vpnservice.py:315
msgid "Name for the ike policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:323
+#: heat/engine/resources/neutron/vpnservice.py:320
msgid "Description for the ike policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:328
+#: heat/engine/resources/neutron/vpnservice.py:325
msgid "Authentication hash algorithm for the ike policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:336
+#: heat/engine/resources/neutron/vpnservice.py:333
msgid "Encryption algorithm for the ike policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:345
+#: heat/engine/resources/neutron/vpnservice.py:342
msgid "Negotiation mode for the ike policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:353
+#: heat/engine/resources/neutron/vpnservice.py:350
msgid "Safety assessment lifetime configuration for the ike policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:357
-#: heat/engine/resources/neutron/vpnservice.py:505
+#: heat/engine/resources/neutron/vpnservice.py:354
+#: heat/engine/resources/neutron/vpnservice.py:501
msgid "Safety assessment lifetime units."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:365
-#: heat/engine/resources/neutron/vpnservice.py:514
+#: heat/engine/resources/neutron/vpnservice.py:362
+#: heat/engine/resources/neutron/vpnservice.py:510
msgid "Safety assessment lifetime value in specified units."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:373
+#: heat/engine/resources/neutron/vpnservice.py:370
msgid "Perfect forward secrecy in lowercase for the ike policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:381
+#: heat/engine/resources/neutron/vpnservice.py:378
msgid "Version for the ike policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:390
+#: heat/engine/resources/neutron/vpnservice.py:387
msgid "The authentication hash algorithm used by the ike policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:392
+#: heat/engine/resources/neutron/vpnservice.py:389
msgid "The description of the ike policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:393
+#: heat/engine/resources/neutron/vpnservice.py:390
msgid "The encryption algorithm used by the ike policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:395
+#: heat/engine/resources/neutron/vpnservice.py:392
msgid "The version of the ike policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:396
+#: heat/engine/resources/neutron/vpnservice.py:393
msgid "The safety assessment lifetime configuration for the ike policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:398
+#: heat/engine/resources/neutron/vpnservice.py:395
msgid "The name of the ike policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:399
+#: heat/engine/resources/neutron/vpnservice.py:396
msgid "The perfect forward secrecy of the ike policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:400
+#: heat/engine/resources/neutron/vpnservice.py:397
msgid "The negotiation mode of the ike policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:402
+#: heat/engine/resources/neutron/vpnservice.py:399
msgid "The unique identifier of the tenant owning the ike policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:457
+#: heat/engine/resources/neutron/vpnservice.py:453
msgid "Name for the ipsec policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:462
+#: heat/engine/resources/neutron/vpnservice.py:458
msgid "Description for the ipsec policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:467
+#: heat/engine/resources/neutron/vpnservice.py:463
msgid "Transform protocol for the ipsec policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:475
+#: heat/engine/resources/neutron/vpnservice.py:471
msgid "Encapsulation mode for the ipsec policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:483
+#: heat/engine/resources/neutron/vpnservice.py:479
msgid "Authentication hash algorithm for the ipsec policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:491
+#: heat/engine/resources/neutron/vpnservice.py:487
msgid "Encryption algorithm for the ipsec policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:500
+#: heat/engine/resources/neutron/vpnservice.py:496
msgid "Safety assessment lifetime configuration for the ipsec policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:522
+#: heat/engine/resources/neutron/vpnservice.py:518
msgid "Perfect forward secrecy for the ipsec policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:531
+#: heat/engine/resources/neutron/vpnservice.py:527
msgid "The authentication hash algorithm of the ipsec policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:533
+#: heat/engine/resources/neutron/vpnservice.py:529
msgid "The description of the ipsec policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:534
+#: heat/engine/resources/neutron/vpnservice.py:530
msgid "The encapsulation mode of the ipsec policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:535
+#: heat/engine/resources/neutron/vpnservice.py:531
msgid "The encryption algorithm of the ipsec policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:537
+#: heat/engine/resources/neutron/vpnservice.py:533
msgid "The safety assessment lifetime configuration of the ipsec policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:539
+#: heat/engine/resources/neutron/vpnservice.py:535
msgid "The name of the ipsec policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:540
+#: heat/engine/resources/neutron/vpnservice.py:536
msgid "The perfect forward secrecy of the ipsec policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:541
+#: heat/engine/resources/neutron/vpnservice.py:537
msgid "The unique identifier of the tenant owning the ipsec policy."
msgstr ""
-#: heat/engine/resources/neutron/vpnservice.py:543
+#: heat/engine/resources/neutron/vpnservice.py:539
msgid "The transform protocol of the ipsec policy."
msgstr ""
@@ -4325,47 +4497,57 @@ msgstr ""
msgid "Unexpected exception occurred %d time(s)... retrying."
msgstr ""
-#: heat/openstack/common/fileutils.py:63
+#: heat/openstack/common/fileutils.py:62
#, python-format
msgid "Reloading cached file %s"
msgstr ""
-#: heat/openstack/common/lockutils.py:103
+#: heat/openstack/common/gettextutils.py:263
+msgid "Message objects do not support addition."
+msgstr ""
+
+#: heat/openstack/common/gettextutils.py:272
+msgid ""
+"Message objects do not support str() because they may contain non-ascii "
+"characters. Please use unicode() or translate() instead."
+msgstr ""
+
+#: heat/openstack/common/lockutils.py:82
#, python-format
-msgid "Could not release the acquired lock `%s`"
+msgid "Created lock path: %s"
msgstr ""
-#: heat/openstack/common/lockutils.py:168
+#: heat/openstack/common/lockutils.py:93
#, python-format
-msgid "Got semaphore \"%(lock)s\""
+msgid "Got file lock \"%s\""
msgstr ""
-#: heat/openstack/common/lockutils.py:177
+#: heat/openstack/common/lockutils.py:108
#, python-format
-msgid "Attempting to grab file lock \"%(lock)s\""
+msgid "Could not release the acquired lock `%s`"
msgstr ""
-#: heat/openstack/common/lockutils.py:187
+#: heat/openstack/common/lockutils.py:110
#, python-format
-msgid "Created lock path: %s"
+msgid "Released file lock \"%s\""
msgstr ""
-#: heat/openstack/common/lockutils.py:205
+#: heat/openstack/common/lockutils.py:148
#, python-format
-msgid "Got file lock \"%(lock)s\" at %(path)s"
+msgid "Attempting to grab external lock \"%(lock)s\""
msgstr ""
-#: heat/openstack/common/lockutils.py:209
+#: heat/openstack/common/lockutils.py:174
#, python-format
-msgid "Released file lock \"%(lock)s\" at %(path)s"
+msgid "Got semaphore \"%(lock)s\""
msgstr ""
-#: heat/openstack/common/lockutils.py:247
+#: heat/openstack/common/lockutils.py:231
#, python-format
msgid "Got semaphore / lock \"%(function)s\""
msgstr ""
-#: heat/openstack/common/lockutils.py:251
+#: heat/openstack/common/lockutils.py:235
#, python-format
msgid "Semaphore / lock released \"%(function)s\""
msgstr ""
@@ -4375,17 +4557,17 @@ msgstr ""
msgid "Deprecated: %s"
msgstr ""
-#: heat/openstack/common/log.py:402
+#: heat/openstack/common/log.py:404
#, python-format
msgid "Error loading logging config %(log_config)s: %(err_msg)s"
msgstr ""
-#: heat/openstack/common/log.py:453
+#: heat/openstack/common/log.py:455
#, python-format
msgid "syslog facility must be one of: %s"
msgstr ""
-#: heat/openstack/common/log.py:623
+#: heat/openstack/common/log.py:625
#, python-format
msgid "Fatal call to deprecated config: %(msg)s"
msgstr ""
@@ -4489,57 +4671,57 @@ msgstr ""
msgid "process_input not supported over SSH"
msgstr ""
-#: heat/openstack/common/service.py:134 heat/openstack/common/service.py:346
+#: heat/openstack/common/service.py:166 heat/openstack/common/service.py:384
msgid "Full set of CONF:"
msgstr ""
-#: heat/openstack/common/service.py:143 heat/openstack/common/service.py:231
+#: heat/openstack/common/service.py:175 heat/openstack/common/service.py:269
#, python-format
msgid "Caught %s, exiting"
msgstr ""
-#: heat/openstack/common/service.py:155
+#: heat/openstack/common/service.py:187
msgid "Exception during rpc cleanup."
msgstr ""
-#: heat/openstack/common/service.py:200
+#: heat/openstack/common/service.py:238
msgid "Parent process has died unexpectedly, exiting"
msgstr ""
-#: heat/openstack/common/service.py:237
+#: heat/openstack/common/service.py:275
msgid "Unhandled exception"
msgstr ""
-#: heat/openstack/common/service.py:270
+#: heat/openstack/common/service.py:308
msgid "Forking too fast, sleeping"
msgstr ""
-#: heat/openstack/common/service.py:289
+#: heat/openstack/common/service.py:327
#, python-format
msgid "Started child %d"
msgstr ""
-#: heat/openstack/common/service.py:316
+#: heat/openstack/common/service.py:354
#, python-format
msgid "Child %(pid)d killed by signal %(sig)d"
msgstr ""
-#: heat/openstack/common/service.py:320
+#: heat/openstack/common/service.py:358
#, python-format
msgid "Child %(pid)s exited with status %(code)d"
msgstr ""
-#: heat/openstack/common/service.py:324
+#: heat/openstack/common/service.py:362
#, python-format
msgid "pid %d not in child list"
msgstr ""
-#: heat/openstack/common/service.py:354
+#: heat/openstack/common/service.py:392
#, python-format
msgid "Caught %s, stopping children"
msgstr ""
-#: heat/openstack/common/service.py:372
+#: heat/openstack/common/service.py:410
#, python-format
msgid "Waiting on %d children to exit"
msgstr ""
@@ -4569,16 +4751,30 @@ msgstr ""
msgid "Unrecognized value '%(val)s', acceptable values are: %(acceptable)s"
msgstr ""
-#: heat/openstack/common/strutils.py:182
+#: heat/openstack/common/strutils.py:188
#, python-format
msgid "Invalid string format: %s"
msgstr ""
-#: heat/openstack/common/strutils.py:189
+#: heat/openstack/common/strutils.py:195
#, python-format
msgid "Unknown byte multiplier: %s"
msgstr ""
+#: heat/openstack/common/versionutils.py:69
+#, python-format
+msgid ""
+"%(what)s is deprecated as of %(as_of)s in favor of %(in_favor_of)s and "
+"may be removed in %(remove_in)s."
+msgstr ""
+
+#: heat/openstack/common/versionutils.py:73
+#, python-format
+msgid ""
+"%(what)s is deprecated as of %(as_of)s and may be removed in "
+"%(remove_in)s. It will not be superseded."
+msgstr ""
+
#: heat/openstack/common/crypto/utils.py:27
msgid "An unknown error occurred in crypto utils."
msgstr ""
@@ -4597,20 +4793,40 @@ msgstr ""
msgid "Invalid Parameter: Unicode is not supported by the current database."
msgstr ""
-#: heat/openstack/common/db/sqlalchemy/migration.py:252
-msgid "Upgrade DB using Essex release first."
+#: heat/openstack/common/db/sqlalchemy/migration.py:219
+msgid "version should be an integer"
+msgstr ""
+
+#: heat/openstack/common/db/sqlalchemy/migration.py:242
+#, python-format
+msgid ""
+"Tables \"%s\" have non utf8 collation, please make sure all tables are "
+"CHARSET=utf8"
+msgstr ""
+
+#: heat/openstack/common/db/sqlalchemy/migration.py:266
+msgid ""
+"The database is not under version control, but has tables. Please stamp "
+"the current version of the schema manually."
msgstr ""
-#: heat/openstack/common/db/sqlalchemy/session.py:551
+#: heat/openstack/common/db/sqlalchemy/session.py:596
msgid "DB exception wrapped."
msgstr ""
-#: heat/openstack/common/db/sqlalchemy/session.py:619
+#: heat/openstack/common/db/sqlalchemy/session.py:665
#, python-format
msgid "Database server has gone away: %s"
msgstr ""
-#: heat/openstack/common/db/sqlalchemy/session.py:702
+#: heat/openstack/common/db/sqlalchemy/session.py:743
+msgid ""
+"This application has not enabled MySQL traditional mode, which means "
+"silent data corruption may occur. Please encourage the application "
+"developers to enable this mode."
+msgstr ""
+
+#: heat/openstack/common/db/sqlalchemy/session.py:767
#, python-format
msgid "SQL connection failed. %s attempts left."
msgstr ""
@@ -4692,14 +4908,6 @@ msgstr ""
msgid "Could not send notification to %(topic)s. Payload=%(message)s"
msgstr ""
-#: heat/openstack/common/rpc/__init__.py:103
-#, python-format
-msgid ""
-"A RPC is being made while holding a lock. The locks currently held are "
-"%(locks)s. This is probably a bug. Please report it. Include the "
-"following: [%(stack)s]."
-msgstr ""
-
#: heat/openstack/common/rpc/amqp.py:75
msgid "Pool creating new connection"
msgstr ""
@@ -4831,7 +5039,7 @@ msgstr ""
msgid "Specified RPC version cap, %(version_cap)s, is too low"
msgstr ""
-#: heat/openstack/common/rpc/common.py:288
+#: heat/openstack/common/rpc/common.py:292
#, python-format
msgid "Returning exception %s to caller"
msgstr ""
@@ -5095,25 +5303,25 @@ msgstr ""
msgid "rpc_zmq_matchmaker = %(orig)s is deprecated; use %(new)s instead"
msgstr ""
-#: heat/openstack/common/rpc/matchmaker.py:45
+#: heat/openstack/common/rpc/matchmaker.py:46
msgid "Match not found by MatchMaker."
msgstr ""
-#: heat/openstack/common/rpc/matchmaker.py:79
+#: heat/openstack/common/rpc/matchmaker.py:80
msgid "Matchmaker does not implement registration or heartbeat."
msgstr ""
-#: heat/openstack/common/rpc/matchmaker.py:215
+#: heat/openstack/common/rpc/matchmaker.py:216
#, python-format
msgid "Matchmaker unregistered: %(key)s, %(host)s"
msgstr ""
-#: heat/openstack/common/rpc/matchmaker.py:227
+#: heat/openstack/common/rpc/matchmaker.py:228
msgid "Register before starting heartbeat."
msgstr ""
-#: heat/openstack/common/rpc/matchmaker_ring.py:75
-#: heat/openstack/common/rpc/matchmaker_ring.py:93
+#: heat/openstack/common/rpc/matchmaker_ring.py:76
+#: heat/openstack/common/rpc/matchmaker_ring.py:94
#, python-format
msgid "No key defining hosts for topic '%s', see ringfile"
msgstr ""
@@ -5148,7 +5356,7 @@ msgstr ""
msgid "Resuming generic resource (Type \"%s\")"
msgstr ""
-#: heat/tests/generic_resource.py:70
+#: heat/tests/generic_resource.py:113
#, python-format
msgid "Signaled resource (Type \"%(type)s\") %(details)s"
msgstr ""
@@ -5158,6 +5366,14 @@ msgstr ""
msgid "Testing message %(text)s"
msgstr ""
+#: heat/tests/test_server.py:418
+#, python-format
+msgid ""
+"Properties \"uuid\" and \"network\" are both set to the network "
+"\"%(network)s\" for the server \"%(server)s\". The \"uuid\" property is "
+"deprecated. Use only \"network\" property."
+msgstr ""
+
#~ msgid ""
#~ msgstr ""
@@ -5482,3 +5698,86 @@ msgstr ""
#~ msgid "SwiftContainer create container %(container)s with headers %(headers)s"
#~ msgstr ""
+#~ msgid "Service temporarily unvavailable"
+#~ msgstr ""
+
+#~ msgid "Keystone v2 API connection failed, no password or auth_token!"
+#~ msgstr ""
+
+#~ msgid "v2 trust token re-scoping failed!"
+#~ msgstr ""
+
+#~ msgid "Keystone v3 API connection failed, no password or auth_token!"
+#~ msgstr ""
+
+#~ msgid "Problem deleting user %(user)s: %(reason)s"
+#~ msgstr ""
+
+#~ msgid "Unexpected number of ec2 credentials %(len)s for %(user)s"
+#~ msgstr ""
+
+#~ msgid "%(schema)s supplied for for %(type)s %(data)s"
+#~ msgstr ""
+
+#~ msgid "value is not an integer"
+#~ msgstr ""
+
+#~ msgid "access_key % not found!"
+#~ msgstr ""
+
+#~ msgid "Cannot access resource from wrong stack!"
+#~ msgstr ""
+
+#~ msgid "Cannot access resource, invalid credentials!"
+#~ msgstr ""
+
+#~ msgid "Failed to parse %(dir)s/%(name)s"
+#~ msgstr ""
+
+#~ msgid "Failed to read %(dir)s/%(name)s"
+#~ msgstr ""
+
+#~ msgid "%(name)s Alarm, adjusting Group %(group)s by %(filter)s"
+#~ msgstr ""
+
+#~ msgid "Optional server name."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "Arbitrary key/value metadata to store "
+#~ "for this server. A maximum of five"
+#~ " entries is allowed, and both keys"
+#~ " and values must be 255 characters"
+#~ " or less."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "For the server \"%(server)s\" the "
+#~ "\"uuid\" property is set to network "
+#~ "\"%(network)s\". \"uuid\" property is "
+#~ "deprecated. Use \"network\" property instead."
+#~ msgstr ""
+
+#~ msgid "Unexpected ec2 keypair, for %(id)s access %(access)s"
+#~ msgstr ""
+
+#~ msgid "Attempting to grab file lock \"%(lock)s\""
+#~ msgstr ""
+
+#~ msgid "Got file lock \"%(lock)s\" at %(path)s"
+#~ msgstr ""
+
+#~ msgid "Released file lock \"%(lock)s\" at %(path)s"
+#~ msgstr ""
+
+#~ msgid "Upgrade DB using Essex release first."
+#~ msgstr ""
+
+#~ msgid ""
+#~ "A RPC is being made while holding"
+#~ " a lock. The locks currently held "
+#~ "are %(locks)s. This is probably a "
+#~ "bug. Please report it. Include the "
+#~ "following: [%(stack)s]."
+#~ msgstr ""
+